私はソーシャル ネットワーキング システムを持っており、トピック、タスク、質問、リンク、ドキュメント、ビデオなどがあります。それらすべてを という名前の 1 つのテーブルに配置する予定で、識別するposts
列名が 1 つあります。kind
良いデザインですか?なぜ ?
ところで:
1、postgresql を使用しています 2、タイトル、コンテンツ、created_at、作成者など、それらの間に多くの繰り返し列があると思います
私はソーシャル ネットワーキング システムを持っており、トピック、タスク、質問、リンク、ドキュメント、ビデオなどがあります。それらすべてを という名前の 1 つのテーブルに配置する予定で、識別するposts
列名が 1 つあります。kind
良いデザインですか?なぜ ?
ところで:
1、postgresql を使用しています 2、タイトル、コンテンツ、created_at、作成者など、それらの間に多くの繰り返し列があると思います
検索を実行する列にインデックスを付けることはできません。そもそもなぜすべてを同じテーブルに入れたいのですか?
いいえ。これらはすべて同じ属性を持つものに制限されます。したがって、たとえば、「リンク」に URL フィールドが必要な場合、トピック、タスク、質問などにも URL フィールドが必要です。
これは、postgresql では適切な設計ではありません。リレーショナル データベースのデータを正規化することは非常に重要です。
mongodbなどの NoSQL データベース システムの使用を検討する必要があります。