私はいくつかのテーブルを持つデータベースを設計しています。FAQ、速報、および添付ファイル。BulletinとFAQには添付ファイルが関連付けられている可能性があるため、最初に考えたのは、2つの主キーを複合キーとして使用して結合テーブルを作成することでした。
Bulletin
--------
BulletinID
Subject
Description
Notes
Attachment
-----------
AttachmentID
FileName
FilePath
etc.
結合テーブル:
BulletinAttachments
-------------------
BulletinID
AttachmentID
これを設計するときに、添付ファイルも必要とする他のエンティティ(ニュースレター、電子メールなど)が後で導入された場合はどうなるかについても考えました。これらのエンティティごとに結合テーブルを作成する必要があります。ひどいことではありませんが、結合テーブルを削除し、AttachmentTypeをAttachmentテーブルに配置して、それに応じてタイプを割り当てたらどうなるでしょうか。
AttachmentType
--------------
AttachmentTypeID
AttachmentType
Description
その表のデータは次のようになります
。1-速報
2-FAQ3-
ニュースレター
4-電子メール
次に、Attachmentテーブルはそれを識別するためにAttachmentTypeIDを保持します。
Attachments
-----------
AttachmentID
AttachmentTypeID
FileName
FilePath
etc.
だから私の質問は、パフォーマンスの面で(SQL 2008 R2を使用して)、2つの間のより良い選択がありますか?これを設計するためのより良い方法はありますか?個々の結合テーブルを使用することに関する私の懸念は、より多くのエンティティが登場し、添付ファイルに対応するために、結合テーブルを作成する必要があり、フロントエンドソフトウェアでは、そのロジックを作成する必要があるのに対し、AttachmentTypeIDでは新しいAttachmentTypeを挿入するためのフロントエンドであり、dbの相互作用は必要ありません。