0

私はソーシャル ネットワーキング システムを持っており、トピック、タスク、質問、リンク、ドキュメント、ビデオなどがあります。それらすべてを という名前の 1 つのテーブルに配置する予定で、識別するposts列名が 1 つあります。kind良いデザインですか?なぜ ?

ところで:

1、postgresql を使用しています 2、タイトル、コンテンツ、created_at、作成者など、それらの間に多くの繰り返し列があると思います

4

4 に答える 4

2

あなたの説明から、これらすべてのドメイン オブジェクトには共通点があるようです。そうでなければ、それらを 1 つのテーブルに格納することさえ考えないでしょう。偶然かどうかにかかわらず、あなたが説明したことは、単一テーブルと呼ばれる継承をリレーショナル モデルにマッピングする手法の 1 つです。上記のリンクでは、他の手法とその長所と短所について詳しく説明しています。

于 2012-07-24T12:57:26.110 に答える
1

検索を実行する列にインデックスを付けることはできません。そもそもなぜすべてを同じテーブルに入れたいのですか?

于 2012-07-24T12:56:59.190 に答える
0

いいえ。これらはすべて同じ属性を持つものに制限されます。したがって、たとえば、「リンク」に URL フィールドが必要な場合、トピック、タスク、質問などにも URL フィールドが必要です。

于 2012-07-24T12:54:19.200 に答える
0

これは、postgresql では適切な設計ではありません。リレーショナル データベースのデータを正規化することは非常に重要です。

mongodbなどの NoSQL データベース システムの使用を検討する必要があります。

于 2012-07-24T12:54:25.260 に答える