0

私はバックエンドとデータベース設計の経験がほとんどないので、データベース内の外部キーの数を最小限に抑えるのは良い習慣ですか?

たとえば、検索Webサイトにログオンすることを検討してみましょう。

USER --hasA--> SESSION --makes--> QUERY

この場合、ユーザーとセッションの間には1対多の関係があり、セッションはクエリと1対多の関係にあります。セッションがuser_idの外部キーを持ち、クエリがsession_idの外部キーを持つことは理にかなっていますが、クエリテーブルはuser_idの外部キーを持つ必要がありますか?なぜまたはなぜそうではないのですか?

前もって感謝します!

4

2 に答える 2

2

user_idtoを追加するQUERYと、データベースが冗長になります。これがほとんどの場合悪い習慣である理由です。極端な場合(まれに)、パフォーマンスの最適化として必要になる場合があります。

外部キーの数を最小限に抑えることは、何の役にも立たないため、通常は設計上の目標ではありません。

典型的な設計目標は、ビジネスドメインを最も自然にモデル化するクリーンなデータベースを用意することです。user_idその意味で、にを追加しないでくださいQUERY。ただし、意味のあるすべてのFKを絶対に追加してください。これにより、開発コストとアプリケーションの信頼性に明確で顕著なメリットがもたらされます。

于 2012-12-24T12:00:07.973 に答える