評価と呼ばれる参照テーブルがあります。これには、名前(主キーとして機能する)と説明という2つの属性があります。私の他のテーブルブックには、外部キーrating_name(rating.nameへの参照)があります。これは大丈夫なデザインですか、または評価表のID列を追加する必要がありますか?データベース設計 - 参照ルックアップテーブル
0
A
答えて
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"は必要ありません。
関連する問題
- 1. マスター参照の「代替」名のデータベース設計
- 2. データベースの設計上の問題 - 循環参照
- 3. PowerDesigner(データベース設計) - 相互参照テーブルにPKを追加する
- 4. ADO.NET Data Servicesでルックアップテーブルへの参照を追加する
- 5. データベース設計101
- 6. データベースの設計
- 7. データベース設計 - ルックアップテーブルを作成するための最小限のスペース
- 8. データベース設計のアドバイス
- 9. OO設計とデータベース設計
- 10. データベース設計 - 親
- 11. データベース設計
- 12. ルックアップテーブルを照会するベストプラクティス
- 13. 参照データ/ NOSQLデータベースのマスタデータ
- 14. Web2py MySQLデータベース参照エラー
- 15. firebaseデータベース子参照問題
- 16. App.configのsqliteデータベース参照
- 17. データベース設計SQL
- 18. データベース設計
- 19. データベース設計-relation
- 20. MongoDB ::データベース設計
- 21. Mysql - データベース設計
- 22. データベース設計ソリューション
- 23. データベース設計
- 24. データベース設計
- 25. データベース設計webapp
- 26. ユーザストーリー - データベース設計
- 27. データベース設計 - ダッシュボード
- 28. データベース設計 - エンティティリレーションシップモデル
- 29. トランスポートタイムテーブルシステムのデータベース設計
- 30. のMongoDBデータベース設計は