2016-05-24 7 views
0

評価と呼ばれる参照テーブルがあります。これには、名前(主キーとして機能する)と説明という2つの属性があります。私の他のテーブルブックには、外部キーrating_name(rating.nameへの参照)があります。これは大丈夫なデザインですか、または評価表のID列を追加する必要がありますか?データベース設計 - 参照ルックアップテーブル

答えて

1

あなたの質問は、サロゲートキー(ビジネスドメインに関連していないもの)または自然キー(ビジネスドメインに関連するもの)を使用するかどうかということになります。これはデータベース設計の世界で非常に議論されている質問であり、this question(これは主観的に適切にマークされている)はそれぞれの賛否両論にいくつかの洞察を投げかけています。

1

より標準的なデザインは、あなたの評価テーブル内のすべての3つのフィールドを持っているだろう:

id NUMBER NOT NULL AUTO_INCREMENT 
name VARCHAR 
description VARCHAR 

と「ブック」の表は、books.ratings_id = ratings.idでの「評価」を指している必要があります。 あなたの評価の名前を更新する必要がある場合は、より良いでしょう。

もう1つの理由は、多くのサーバーフレームワークでは、すべてのテーブルにプライマリキーを持つ数字の「id」フィールドがあることが前提です。だから、あとでコーディングするだけで済むでしょう。

あなたの質問に答えるには、主キーフィールド(ratings.name)が既にある場合は別の "id"は必要ありません。

関連する問題