私は現在、多くの支店を持つ会社向けの小規模な請求システムを開発しています。各支店に基づいて異なる請求書の自動番号を生成する方法を知りたいと思っていました。table のテーブル構造は次のとおりinvoice_header
です。
id | number | cust | grand_total
ブランチごとに異なるテーブルを作成する必要がありますか? たとえばinvoice_header_1, invoice_header_2 , invoice_header_3
。
を使用する場合ENGINE=MyISAM
、MySQLはこれを行います。
CREATE TABLE invoice_header( branch_id INT UNSIGNED NOT NULL、 id INT UNSIGNED NOT NULL AUTO_INCREMENT、 番号INTUNSIGNEDNOT NULL DEFAULT 1、 INT UNSIGNED NOT NULL、 grand_total DECIMAL(10,2)NOT NULL DEFAULT 0、 主キー(branch_id、id) )ENGINE = MyISAM;
MySQLはid
、1から始まる列の一意の値を生成しますが、異なる値ごとに生成しますbranch_id
。これは、エンジンが。の場合にのみ機能しMyISAM
ます。
詳細については、 http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.htmlで「複数列のインデックス」を検索してください。
ブランチの種類を含むテーブルを作成する方が、より適切で実行しやすくなります。次に、invoice_header テーブルに列を 1 つだけ追加し、ブランチ テーブルからの正確なブランチの ID を指定します。
このようにして、これら2つを接続して、きれいに保つことができます. そして編集しやすい。
したがって、テーブルinvoice_header id | 数 | 顧客 | 総計 | branch_id
テーブル ブランチ ID | 支店名