問題タブ [normalization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
561 参照

sql-server - 2 つのテーブルが非常に似ている場合、それらを結合する必要があるのはいつですか?

イベントと写真があり、両方のコメントがあります。現在、2 つのコメント テーブルがあります。1 つはイベントに関連するコメント用で、もう 1 つは写真のコメント用です。スキーマは次のようになります。

私の質問は、それらを組み合わせて、別の相互参照表を追加する必要があるかどうかですが、適切に行う方法が思いつきません。これでいいと思いますが、どう思いますか?

編集

ウォルターの答え(およびいくつかの軽い読書)に基づいて、私はこれを思いつきました:

構造間に実際にパフォーマンスの違いはありますか? 私には、それは少し好みのようです。2 番目のスキーマには利点があります。イベントのコメントや写真のコメントに具体性を追加したい場合は、そのための別のテーブルがあり、両方で新しいプロパティを共有したい場合は、単一のテーブルがあります。新しいプロパティを追加します。

0 投票する
3 に答える
132 参照

sql - 通常の第 3 形式ではないテーブルをクエリする

こんにちは、第 3 正規形で作成していない怠け者の開発者によって設計されたテーブルがあります。彼は、MM 関係を使用する代わりに、テーブルに配列を保存しました。また、アプリケーションが実行されているため、データベース スキーマを変更できません。

次のようにテーブルをクエリする必要があります。

SELECT * FROM myTable WHERE ユーザーグループ = 20

usergroup フィールドには次のようなデータが含まれます: 17,19,20 または、20 または 19 のみの場合もあります。

SELECT * FROM myTable WHERE usergroup LIKE 20 のように検索できますが、この場合、200 を含むフィールドにも一致します。

誰かアイデアはありますか?ありがとう

0 投票する
1 に答える
544 参照

c# - C#での「正規化」手順

C#での3Dサーフェスメッシュの正規化手順について誰かに説明してもらえますか?

参考書には、次のような行があります。

GetNormalizeメソッドは、サーフェスの領域を[-1、1]の領域にマップするために使用されます。これにより、画面の表示が向上します。

0 投票する
1 に答える
1864 参照

ssis - SSISデータ移行:フラットテーブルを親+子/孫テーブルに分割

SQL Server 2005にある大きなフラットテーブルのデータを、親テーブルと複数の子テーブルで構成される新しいSQLServer2005スキーマに移行する必要があります。これは、SSISでのマージまたはマージ結合の反対のように見えますが、これを実現する方法がわかりません。任意の推奨事項は大歓迎です。他の人がこの種のことをどのように達成するかの例を見たことがありますか?

フラットソーステーブル[FlatSource]には280K未満のレコードといくつかのガベージデータがあるため、ある時点でこれらを処理する必要があります。しかし今のところ、ここに私が達成する必要があることの要点があります...

フラットソーステーブルは、ほとんどの場合、新しい親テーブル[Parent]にマップされます。つまり、[FlatSource]の各レコードについて、このレコードを[Parent]に移動する必要があります。

これが完了したら、この新しい親レコードのPKを記録し、多数の子レコードを追加する必要があります。このPKは、0〜4個のレコードを子テーブル[Child1]に追加するときに使用されます。基本的に、0〜4の列があり、入力された場合、[Parent]のPKを使用する[Child1]の新しいレコードが必要になります。

これが完了したら、[子]のPKを使用する0〜4個の新しいレコードを[孫]に入力する必要があります。

あなたが提供できる洞察に感謝します。私はC#でプロジェクトを開始しましたが、深く掘り下げるほど、SSISのタスクのように見えます。

心から、

ジョシュブレアゴールデン、CO

0 投票する
3 に答える
162 参照

php - 別のテーブルを作成する必要がありますか、それとも配列を使用するだけですか?(正規化するかしないか)

現在の状況では、トピックは3つの主要なカテゴリでソートされています。3つ以上のカテゴリを追加する可能性がありますが、上位のアップは、トピックに1つ以上のカテゴリを追加する機能を実装したいと考えています。

私の元のデータベース設計では、トピック情報テーブルの外部キーとしてcategoryIDがあります。これは最初からおそらく悪い考えでしたが、カテゴリが3つしかないように設定されていて、この方法でクエリを実行できるようになると思いました。

したがって、私が見ることができることから、2つのオプションがあります。1)phpの最後で解析するコンマ区切りの文字列としてcategoryIDを入力します。2)DBを再構築し、categoryIDをcategoryIDとtopicIDの独自のテーブルに引き出します。

みんなどう思ったのかしら。私の最初の本能は、データベースを再構築することでした。しかし、私が考えるときの最初のオプションは、実装するのが最も簡単で、データベースを変更することによって既存のものを壊す可能性が最も低いです。ただし、これにより非正規化が発生し、データに一貫性がなくなる可能性があります。

パフォーマンスと引き換えに一貫性のないデータが発生するリスクを受け入れる限り、非正規化は問題ないことを読みました。あなたの意見では、私はこのリスクのパフォーマンスで多くを得るでしょうか?この状況で私が何をすべきかについての意見をいただければ幸いです。

助けてくれてありがとう、
リーバイス

0 投票する
2 に答える
383 参照

sql - このテーブルを 2 つに分割する必要がありますか?

データベースの正規化に頭を悩ませようとしています。実用的なデータベースを作成しようとするのはこれが初めてなので、私の無知を許してください。クラスプロジェクト用の自動卒業チェックシステムを作成しようとしています。次の表は、設定されたカタログ年数のメジャーのすべてのオプションを追跡します。表は以下の通り

Must_have一部のオプションでは、リストされた合計 (したがって属性)から指定された数のクラスをユーザーが選択できます。完成した行は次のようになります。

Titleメジャーに付属するオプションの名前です。bis(ビジネス情報システム) にクラスの選択肢がある場合、1 つの行に 1Must_haveつの行だけの番号があります。

私の質問は、このテーブルを 2 つの異なるテーブルに分割する必要があるかどうかです。私が現在持っている方法は、やや間違っているように思えます。どんな助けでも大歓迎です。

0 投票する
13 に答える
668 参照

sql - SQL データベースがさらに正規化を必要とする時期をどのように判断しますか?

データを取得しようとしていて、明らかに簡単な方法がない場合ですか?

何かがそれ自体のテーブルであるべきだとわかったときは?

法律は何ですか?

0 投票する
3 に答える
5099 参照

sql - ER図(図面)


大規模な大学での現在の学期の登録を表すリレーショナルデータベースの場合、与えられたすべてのアサーションを考慮したスキーマのER図は何ですか。

•100人のインストラクター、200人のコース、800人の学生。
•インストラクターは、特定の期間に1つ以上のコースを教えることができます(平均は2.0コースです)。
•インストラクターは、少なくとも1人の学生(平均= 2.5人の学生)の調査を指示する必要があります。
•コースには、前提条件がない、1つ、または2つある場合があります(平均= 1.5の前提条件)。
•現在学生が在籍していない場合でも、コースが存在する場合があります。
•各コースは、1人のインストラクターによって指導されます。
•コースの平均登録者数は30人です。
•学生は、学期ごとに少なくとも1つのコースを選択する必要があります(平均= 4.0コースの選択)。

私は何度か答えにたどり着こうとしましたが、できません。すべての助けは私にとって貴重です。ソリューションを視覚化するのに役立つMSVisioの図(この質問に時間を割くことができる場合)をいただければ幸いです。

注:私はRTFM応答を探していません。

0 投票する
6 に答える
7989 参照

sql-server - インライン varchar(max) 列を使用するか、別のテーブルに格納する必要がありますか?

特定のシステム操作の詳細を記録するために、MS SQL Server 2005 でテーブルを作成したいと考えています。以下のテーブル デザインからわかるように、Detailsis 以外のすべての列は null 不可です。

Details列に常にデータが含まれているとは限らないためです。この列を別のテーブルに格納し、代わりにリンクを提供する方が効率的ですか?

小さいデータ型の場合はあまり考慮しませんが、varchar(max)これを行うとテーブルのサイズを小さく保つのに役立ちますか? それとも、データベースを賢くしようとしているだけで、何も達成していませんか?

0 投票する
3 に答える
895 参照

sql - 汎用データベース ロギング システム: 別の database.table.column への参照を格納する

私の質問はLog、テーブルに保存されている参照を別のデータベースのデータにリンクするにはどうすればよいですか?

他のすべてのシステムに対して特定の重要なタスクを実行するシステム(Fusion と呼ばれる)を構築しています。これらの 1 つがログ記録です。

アイデアは、他のシステムが Fusion を使用して特定の操作をログに記録できるようにすることです。

したがって、上記の単純化されたテーブル設計では、ReferenceID列に別のデータベース列からの外部キーが格納されます。つまり、ニュース データベースの StoryID または人物データベースのPersonIDです

次に、列のdatabase.table.columnの場所をReferenceLocation格納します。ReferenceID

Logテーブルがクエリされたときに各行の参照データを返すことができるように、SQLクエリを(動的SQLまたは別の方法を使用して)作成できるという考えです。

これはそれを行う方法ですか?より良い方法はありますか?一般的に、この試みの背後にある理由を再考する必要がありますか?