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


Generate different autonumber for different branches

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

id | number | cust | grand_total

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

制作一个包含分支类型的表更好、更可行。然后你只向表invoice_header添加 1 列,然后你从分支表中给出确切分支的 id。

通过这种方式,您可以将这两者连接起来并保持美观和干净。而且更容易编辑。

所以:表invoice_header身份证 |号码 |客户 |grand_total |branch_id

表分支身份证 |branch_name

如果你

使用ENGINE=MyISAM,MySQL将为你做到这一点:

创建表invoice_header (branch_id INT 无符号不为空,id INT 无符号不空AUTO_INCREMENT,数字 INT 无符号 非空 默认值 1,CUST INT 无符号不为空,grand_total 十进制 (10,2) 不为空默认值 0,主键(branch_id、ID)) 引擎=MyISAM;

MySQL 将为id列生成一个唯一值,从 1 开始,但对于每个不同的branch_id。这仅在引擎MyISAM时才有效。

在 http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html 中搜索"多列索引"以获取更多信息。