0

次のテーブルを使用して、カスタム CMS のスキーマを設計するのに助けが必要です。

  • 製品・記事
  • ニュース
  • イベント

すべてのテーブルには通常のものがあります (id フィールドと非テキスト フィールドのみ、テキスト フィールドは多言語テーブルにあります)...

私の問題は、___CATEGORY テーブルの作成に起因します。すべてのメイン テーブルには、関連するカテゴリ テーブルがあります。

「マスター」テーブルごとに 2 つの個別のテーブルを作成する必要があります (1 つはカテゴリ用、もう 1 つはリレーション用)。

ProductCategory ( category_id ... )
ProductCategoryRel ( category_id , product_id )

NewsCategory ( category_id ... )
NewsCategoryRel ( category_id , news_id )

EventCategory ( category_id ... )
EventCategoryRel ( category_id , event_id ) 

または、次のように統一されたものを作成する必要があります。

MainCategory ( category_id, type (Product/News/Event) ... )

ProductCategoryRel ( category_id , product_id )
NewsCategoryRel ( category_id , news_id )
EventCategoryRel ( category_id , event_id ) 

どちらのソリューションも完璧ではありません...

製品カテゴリには、ニュース/イベント カテゴリとは異なる (より多くの) フィールドがある可能性があることに注意してください。

4

1 に答える 1

0

「製品カテゴリには、ニュース/イベント カテゴリとは異なる (より多くの) フィールドがある可能性があることに注意してください」という場合は、間違いなく最初のオプションを選択する必要があります。

http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/ (「1 つのリングですべてを支配する」) を参照してください。

于 2012-09-10T13:43:34.637 に答える