我目前正在为拥有多家分支机构的公司开发一个小型发票系统。我想知道如何基于每个分支生成不同的发票自动编号。
这是表invoice_header
的表格结构:
id | number | cust | grand_total
我应该为每个分支创建一个不同的表吗?例如invoice_header_1, invoice_header_2 , invoice_header_3
。
答案 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中搜索“多列索引”以获取更多信息。