2017-06-08 9 views
0

何が良い、パフォーマンスが賢明でしょうか?SQL - いくつかの外部キーを持つ1つの非常に長いテーブルVSいくつかの短いテーブル

一つ、いくつかの外部キーを持つテーブルと行

OR

テーブルごとに以下のデータを持つ1つの外部キーを持ついくつかのテーブルがたくさん。

例:

私は意志が右へのユーザーのための注意事項が含まれている一つのテーブルを作成すると、各ノートが別のテーブルに関連付けされます。

ID Text   CustomerID AccountID UserID AnotherID 
1 "Call James" 1   null  null  null 
2 "Call Havale" null  2   null  null 
3 "Call Shimi" null  null  4556  null 

他のオプションは次のようになります。そう各無関係な外部キーのNULL値を含むであろう

ノート(ID、テキスト、得意先、アカウントID、ユーザID、AnotherID) であろう一つの選択肢で それぞれの外部キーを入力することになる別々のテーブル開くために:

AccountNotes(ID, Text, AccountID) 

CustomerNotes(ID, Text, CustomerID) 

UserNotes(ID, Text, UserID), etc... 

を最後のオプションは、それはありませんが、多くの関係に多くのようにそれを治療することになります(例えば、Notes_to_Accounts(NoteID,AccountID)テーブル...) 。

私がここで見つけたすべての答えは、いくつかの列を持つ1つのテーブルであり、小さな列を持つ小さなテーブルが多数ありました。これは解決しようとしている問題ではありません。

答えて

1

Aは第三の選択肢を提供していますが、それは、単純なエンティティ(1つのテキストフィールド)のためにあまりにも複雑になります

Notes(Id, Text) 
AccountNotes(AccountId, NoteId) 
CustomerNotes(CustomerId, NoteId) 
+0

私は同様にそのオプションを書きましたが、それは優れているなぜあなたは説明できますか?私が気にしている唯一の側面は、そのシナリオです。 –

+0

私はあなたのクライアントアプリケーションでは、クラスとそのためのいくつかのUIコントロールがあると思います。 1つのテーブル= 1つのクラス –

+0

である必要はありません。データベースのパフォーマンスが、より少ないデータを持つ1つのテーブルのほうが良い場合は、それは良いでしょう。 –