2017-06-08 13 views
0

私はminibar_billという名前のテーブルを持っています。私はそれを使ってクライアントの支出の証拠を保持しています。私はホテル/年金制度管理を構築しようとしています。データベースの設計と主キーの作成

私は

...私は(id_bill、id_minibar_product、id_client)

とテーブル

Minibar_billを作ることができると私はbill_idに基づいて請求書にそれらの情報を追加したいと思いました私はそれをどうすればいいのですか?

私はそのような何かをしたい意味:

Id_bill(1) 
id_minibar_product(1,2,3) 
id_client(123) 

だから、最初の3つのレコードは次のようになります。

1, 1, 123 
1, 2, 123 
1, 3, 123 

と私はid_billは、請求書になりたい...多分私ができますid_bill(1) - データベース内の最初の請求書レコードとなります。 id_minibar_product(1,2,3) - 製品1,2,3となります。 idyclient(123) - 請求書に印刷するためにクライアントテーブルからデータを収集するために請求書に使用するクライアントID(私はUI用にC#を使用します)。

私が試してみました何が:

私はid_billフィールドとid_productとDBを作成しようとしたが、私は彼ら構成される主キー作っので、それは間違ったアプローチだと思うと私は外国キーに追加することはできません請求書テーブル。ここで

+0

あなたはここでできるすべての設計ミスをちょうど作りました。こちらをご覧ください:http://www.vertabelo.com/blog/technical-articles/modeling-a-database-for-recording-sales-part-1あなたがまだ周りにいて、質問を放棄しないなら、ここでいくつかの設計上の問題を説明する答えを出すでしょう –

+0

@ Nick.McDermaid私はそのことを見ました...問題は私が持っている解決策を見出さないことですより良いデザイン...たとえ私がテーブル名を投稿しても、彼らはルーマニア語で書かれています...そして、あなたはあまり理解しません... 私が直面している問題は、私は次の表を持っています。Invoice、Room、Minibar 、Minibar_billおよびMinibar_products。 私が願っているのは、顧客が購入したミニバンのすべての製品の単一の請求書にステータスを表示するために、請求書をミニバールにリンクすることです。 –

+0

"インボイス・イン・ミリ秒Googleの「アクセス」には、多くの例とチュートリアルがあります。 here:http://web.pdx.edu/~gerbing/325/Resources/Access.pdf –

答えて

0

は、デザインのためのいくつかの提案です:

それは、記述的なものに名前を付けることをお勧めしますけどテーブルを作成する場合は、充電を開始したい場合には一貫性がなく、晴眼者短くなるだろう、Minibar_billと呼ばれます室内映画、ルーム内の食事、サービスなどを客室に提供します。より一般的なものを呼び出すことをお勧めします - すべてのテーブル名からMinibarを削除してください。

コンマ区切りの値を決して1つのフィールドに入れないでください。

すでに提案されているように、MS Accessのテンプレートを含む、100万件の販売データモデルがオンラインにあります。私はあなたがそうBillがヘッダーである。この

Client     A list of clients 
Products    A list of products you can be billed for (not just minibar) 
Bill     A client has zero or more bills (usually one) 
BillLine    A bill has zero ore more lines. Each line represents 
         One product being charged for on a bll 

のようなものを持ってお勧めホイールに

を再発明ても意味がありません。インボイスされたか、支払われたか、または別個の請求モジュールを作成するかどうかを示す列を追加するかどうかは、あなた次第です。このコメントに関して

何私が望むことは、顧客によって購入されていミニバーのすべての製品の単一請求書のステータスを持つためにminibar_billする請求書をリンクすることです。

あなたが別々の請求書テーブルを持っている場合、あなたはそれをリンクすることにBillIDを書くことができます。

この情報がすべて異なるテーブルに存在し、たとえば請求書を印刷したときに、その時点ですべての情報を収集して収集するかどうかはわかりません。

関連する問題