0

テーブルからデータにアクセスするための最良の方法を示す2つのerdがあります。

表1はカテゴリ、表2は記事です。

TWO Tables ERD

 Table Category 

(CategoryId
CategoryName
CategoryDescription );

Table Articles 


(ArticlesId
 ArticlesTitle
 ArticlesBody
 ArticlesCreatedby
 CategoryId (`forigen Key`FK));

写真を投稿するという評判はありませんが、ここに図式的なERDの写真のリンクがあります。

http://i341.photobucket.com/albums/o377/pakistanihaider/relation1_zps06c6e6ec.png

また

表1はカテゴリ、表2は記事、3番目はカテゴリと記事です。

Three Tables ERD

Table Category

(CategoryId
CategoryName
CategoryDescription );


Table  Articles

(ArticlesId
 ArticlesTitle
 ArticlesBody
 ArticlesCreatedby
    );

Table Category & Articles

(Category_id
Articles_id);

また、この2番目のコードの図式ERD:

http://i341.photobucket.com/albums/o377/pakistanihaider/relation_zpsea5d55a9.png

4

1 に答える 1

0

それはあなたのデータに依存します。記事ごとに1つのカテゴリのみが必要な場合は、オプション1が機能します。ただし、将来、記事ごとに複数のカテゴリが必要になる可能性がある場合は、2番目のオプションの方が適しています。不足していることの1つは、2番目のオプションです。Category&Articlesテーブルには、両方のフィールドが外部キーとして含まれている必要があります。

上記の2番目のオプションの3番目のテーブルは、結合テーブルです。明確な目的は、他の2つのテーブル間のリンクを提供することです。これにより、多対多の関係(カテゴリには多くの記事を含めることができ、記事には多くのカテゴリを含めることができます)が可能になりますが、最初のオプションでは1対多の関係のみが提供されます(各記事には1つのカテゴリしかありません)。

記事テーブルの両方のフィールドが外部キーである必要がある理由は、それらが常に他のテーブルのレコードに関連しているためです。それらを外部キーとして設定することにより、データ入力を保護し(入力しようとするとエラーになり、IDが正しくない)、データベースがデータを結合するクエリを最適化するのに役立ちます。

于 2013-01-28T09:55:35.863 に答える