0

SQL は初めてで、テーブルの関係について質問があります。現在、データベースに次のテーブルがあります。

人:

Person_ID (PK)
Name
Company_ID(FK)
Phone
Email

会社:

Company_ID (PK)
Name
Address
City
State
Invoice_ID (FK)

請求書:

Invoice_ID (PK)
Summary_ID (FK)
Detailed_ID (FK)

概要セクション:

Summary_ID (PK)
InvoiceNumber
Date
DueDate

詳細セクション:

Detailed_ID (PK)
Person_ID (FK)
Amount
Info

基本的には、1社あたり複数人で請求書を1通受け取ります。

各請求書は 2 つのセクションに分かれています。

  • 概要
  • 詳細

概要セクションには、会社名、会社の住所、請求書番号、請求書の日付、および期日が表示されます。

詳細セクションには、個人の名前、金額、および追加情報が表示されます。

私はこれについてすべて間違っていますか?これについて最善の方法は何ですか?ありがとうございました!

編集:

懸念事項: このシナリオで外部キー/主キーを正しく割り当てていますか?

4

1 に答える 1

1

PK/FK の割り当ては問題ないようです。私は次のことを提案しますが:

  1. 何らかの種類のフレームワークを使用している場合は、その慣習と一致するようにしてください。たとえば、Ruby on Rails は通常、すべてのテーブルの id として主キー (1 つの列のみの場合) を呼び出します。注: テーブル全体の列名は一意である必要はありません。
  2. DB で要約セクションと詳細セクションを分離する必要は本当にありますか? Invoice、Summary、および Detailed を 1 つのテーブルに結合し、必要な列を取得/表示するだけです。これは、設計とエンジニアリングの問題です。
    • 設計: 2 つの請求書で 1 つのセクションを共有できますか?
    • エンジニアリング: セクションは何回編集/取得されると思いますか?
于 2012-08-16T03:32:14.507 に答える