8

請求書作成ソフトウェアを作成していますが、個々の請求書を保存したいと考えています。

ユーザーは、顧客を選択して請求書を作成します。また、多くのアイテムが顧客に請求されます。ほとんどの請求書には複数の項目が含まれているため、信じられないほど冗長になることなくそれらをデータベースに保存する最良の方法は何ですか? 必要に応じて、データベース全体を再配置します。

私のテーブルは次のようになります。

顧客テーブル:

Id        / Primary key
FullName
Address
Phone

Items テーブル (提供される製品のテーブル):

Id        / Primary key
ItemName
Price
Description

請求書テーブル (保存された請求書):

Id        / Primary key
CustId    / Foreign key is Id in Customer table
ItemId    / Foreign key is Id in Item table
Notes
4

2 に答える 2

11

請求書を保存するために別のテーブルが必要です(現在、あなたが呼んでいるものInvoicesは実際に請求書アイテムを保存します)。

Customer
    id
    name
    etc.

Item
    id
    name
    etc.

Invoice
    id
    cust_id
    date

InvoiceItem
    id
    inv_id
    item_id

これは、ジャンクションテーブル(つまり)を使用して多対多の関係InvoiceItemをモデル化する古典的な方法です。

于 2012-04-25T23:52:55.280 に答える
2

実際には、4番目のテーブルをそれらに結合する必要があるようです。データを正規化するには、その請求書に固有のものだけを各行に保持します

請求書テーブル

Id        / Primary key
CustId    / Foreign key is Id in Customer table
Notes

請求書アイテムテーブル

InvoiceId
ItemId
于 2012-04-25T23:53:43.940 に答える