为不同的分支生成不同的自动编号

时间:2012-08-12 16:57:01

标签: php mysql

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

id | number | cust | grand_total

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

2 个答案:

答案 0 :(得分:0)

使用分支类型制作表格更好,更可行。 然后你只在表invoice_header中添加一列,然后在分支表中给出确切分支的id。

通过这种方式,您可以将这两者连接起来并使其保持干净整洁。并且更容易编辑。

所以: table invoice_header id |号码| cust | grand_total | branch_id

表格分支 id | branch_name

答案 1 :(得分: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中搜索“多列索引”以获取更多信息。