2012-08-12 68 views
0

我目前正在为一家拥有多个分行的公司开发小型开票系统。我想知道如何根据每个分支生成不同的发票自动编号。 这里是我的表结构的表invoice_header为不同分行生成不同的自动编号

id | number | cust | grand_total 

我应该创建一个不同的表,每个分支?例如invoice_header_1, invoice_header_2 , invoice_header_3

回答

0

这是更好,更可行的做一个表中的分支类型。 然后,您只向表invoice_header添加1列,然后在分支表中输入确切分支的ID。

这样你可以连接这两个,并保持它的漂亮和干净。并且更易于编辑。

因此: 表invoice_header id |数字| cust | grand_total | branch_id

表分支 id | branch_name

0

如果使用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中搜索“多列索引”。

+0

感谢您的回复...它真的帮助我 – Norris 2012-08-13 09:16:08