我目前正在为一家拥有多个分行的公司开发小型开票系统。我想知道如何根据每个分支生成不同的发票自动编号。 这里是我的表结构的表invoice_header
:为不同分行生成不同的自动编号
id | number | cust | grand_total
我应该创建一个不同的表,每个分支?例如invoice_header_1, invoice_header_2 , invoice_header_3
。
我目前正在为一家拥有多个分行的公司开发小型开票系统。我想知道如何根据每个分支生成不同的发票自动编号。 这里是我的表结构的表invoice_header
:为不同分行生成不同的自动编号
id | number | cust | grand_total
我应该创建一个不同的表,每个分支?例如invoice_header_1, invoice_header_2 , invoice_header_3
。
这是更好,更可行的做一个表中的分支类型。 然后,您只向表invoice_header添加1列,然后在分支表中输入确切分支的ID。
这样你可以连接这两个,并保持它的漂亮和干净。并且更易于编辑。
因此: 表invoice_header id |数字| cust | grand_total | branch_id
表分支 id | branch_name
如果使用ENGINE=MyISAM
,MySQL会为你做这个:
CREATE TABLE invoice_header ( branch_id INT UNSIGNED NOT NULL, id INT UNSIGNED NOT NULL AUTO_INCREMENT, number INT UNSIGNED NOT NULL DEFAULT 1, cust INT UNSIGNED NOT NULL, grand_total DECIMAL(10,2) NOT NULL DEFAULT 0, PRIMARY KEY(branch_id, id) ) ENGINE=MyISAM;
MySQL将生成的id
列中的独特价值,从1开始,但对于每一个不同的branch_id
。这只适用于引擎为MyISAM
的情况。
有关更多信息,请在http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html中搜索“多列索引”。
感谢您的回复...它真的帮助我 – Norris 2012-08-13 09:16:08