2012-01-18 11 views
1

請求書については、複数の金額を保管する必要があります。メンテナンスを簡素化するために、私は金額タイプを格納するテーブルを1つ、金額と金額タイプを格納するテーブルを設計することにしました。入出庫請求書には、法律で禁止されている異なる金額タイプがあります。外国の請求書の金額も異なります。複数の行または複数の列

だから、私が持っているでしょう:

table invoice_amount_types(id, type_desc) 
table invoice_amounts(id, invoice_id, amount_types_id, amount) 

しかし、この場合には、私はおよそ10mlの液体フッ化水素を圧入しています。請求書ごとに10レコード。ピボット機能がクエリのパフォーマンスに与える影響についてはわかりません。

はこのようにいくつかのテーブルを設計し、それより良いです、最初は多くの作業になります(請求書とinvoice_amounts _...テーブルは1対1の関係にあるであろう)

table invoice_amounts_incoming(invoice_id, amount_full, amount_0, amount_10, amount_22, amount_23, pre_vat10, pre_vat22, pre_vat23) 
table invoice_amounts_outgoing(invoice_id, amount_full, no_vat, no_vat_export, no_vat_transport, no_vat_other, amount_10, amount_22, amount_23, vat10, vat22, vat23) 

答えて

0

第一の方法(複数のテーブル)正しく設定することができますが、より良い解決策です。長期的には、時間と痛みを節約します。

+0

今日、私は第1の方法がはるかに良いことを確認することができます(そして、私はこの方法で〜6y前に決めたことを嬉しく思います) – davor

0

私はそれを正規化しておきます。さもなければ、複数の列をますます追加することになり、単に災害になるでしょう!今日は5列のテーブルがあり、5列すべてを参照する手順が数十あると想像してください。 5つの列を追加する必要があると判断しました。これはデザイン面では簡単ですが、これらの5つの新しい列を参照したことがないため、すべての手順と関数に問題があります。

私は正規化されたデータベースに投票しました!将来自分のシステムとやりとりする可能性のある将来の開発者や自分自身の方が簡単になります。

関連する問題