2016-05-23 10 views
0

私は雇用主のデータベースシステムを開発しており、その一部には請求書の作成が含まれています。私は自分のテーブル上の自動インクリメントIDについて考えてきましたが、ビジネスの成長のためにはどこまで手当を支払う必要がありますか。システムが非常に包括的で、多くのレコードが更新されるため、私はInnoDBを利用しています。簡体SQL請求書自動インクリメントの転送計画

は、ここで私が現在持っているものです。

オフィス(。ビジネスのオフィス/店舗現在のところ2)
office_id(PK)INT、AI、UN

請求書
invoice_no(PK)INT、AI、UN
office_id(FK)(請求書が由来。)

製品
PRODUCT_ID(PK)INT、AI、国連のラインを作るために、請求書に

InvoiceLine(ネクタイ製品。)
invoice_line_id(PK )INT、AI、UN
invoice_no(FK)
PRODUCT_ID(FK)

第1に、請求書番号が足りなくなることはありませんが、ビジネスに予期せぬオフィスの拡張と売上の増加があった場合には、これにアプローチする方がいいかと思います。 50以上の店舗を持つ大企業はどのようにこれに取り組んでいますか?各店舗には1から始まる独自の請求書番号が設定されていますか?

これは私が考えられてきたものである...

オプション1 - 私は、標準的な10の精度よりも大きなinvoice_noを作るべきか?難しいとは無関係に、現在の制限が不十分であるか、またはこれが不可能/非常に問題があることが判明した場合、配備後にこれを変更できますか?

オプション2 - 私の無知ですが、異なるエンジンタイプのテーブルでデータベースを構成することは可能ですか? MyISAMでは、請求書テーブルにoffice_idとinvoice_noの複合キーを設定することができます。この場合、自動インクリメントの数値はオフィスごとに個別に増加します。これは本当ですか、実行可能ですか?

オプション3 - 新しいオフィスの挿入時に新しいテーブルを作成できますか? InvoiceX & InvoiceXLineを作成します.Xはoffice_idですか?

私が考えていないより良い、より簡単な方法はありますか?

第2に、ビジネスが拡大してインボイスあたり30行以上の平均化が行われていた場合、invoice_line_idsが長期的に使い果たされることが考えられます。だから私はおそらく、この場合、上記のオプション3(すべてのinvoice_noのInvoiceLineXテーブルを作成する)を除いて、これに似たソリューションが必要になるでしょう。

私は単にInvoiceLineテーブルの主キーをinvoice_noとproduct_idの複合にすることができますか?

答えて

0

これはビジネス上の疑問です。あなたが彼らがどのように請求書を送ろうとしているか分かるまで、あなたはどう思いますか?それは、私が将来を見守っていなければならない場合、私はいくつかの別個のIDを保持すると言いました。あなたが必要とするほど大きいですちょうどシーケンシャル固有のIDです。

  • マスター、マジックナンバーは(多分INTは、多分大きなはあなたのビジネスのサイズに応じて)、
  • 「請求書の創始者」欄には、店舗であること
  • 「請求書処理エンティティID」の別の列は、ライフサイクル全体にわたって発行/処理する必要がある店舗/勘定オフィスです。

これは、その状態のすべての請求書を処理している状態で、店舗の規模が大きいと言います。もちろんこれは推測です!

すべての点は、貴重なデータをたくさん集めて、実際の請求書番号がそれらの組み合わせであることです。

&を使用したいことが他に何かについて想像してみてください(ビジネスアナリスト)。

DBタイプでお手伝いできません。

Do には、ロケーション/請求書の行ごとに1つのテーブルがあります。それは大きな時間を吸うだろう。

サイドノート - あなたのIDには常にギャップがあります。彼らはやむを得ないので、それに注意をそらさず、ギャップフリーを主張してください。どんなレベルのパフォーマンスでもそれを得ることはできず、おそらくそれを必要としないかもしれません。

ギャップがないか、場所別に分割する必要があると思われる場合は、1日の終わりにオフィス/店舗/特定の番号を割り当てるバッチジョブを配置します。そうすれば、基になるIDの基本シーケンスを使用して、適切な数字を割り当てることができます。

私は短い答えは間違っていることが証明されない限り、あなたが持っているものは多かれ少なかれ行くと思います。あなたのすべての提案は、あなたがその答えを知らない、あるいは起こらない、問題を伴うものです。

関連する問題