我有桌面发票 - PK是年份+ document_type_id +数字(这是当前编号,我无法更改)。所以,数据是这样的:
year document_type_id number
2013 351 1
2013 351 2
2013 352 1
现在,我需要开发第二种编号 - 表格发票_2 - PK是年份+ market_id + cash_register_id +数字(这是法律禁止的一些发票的编号),FK是invoices_year + invoices_document_type_id + invoices_number
发票 - invoice_2必须为1 - > 0..1关系。
问题是在发票_2表中我可能有这个(我想消除 - 使用一些PK + FK组合?):
year market_id cash_register_id number invoices_year inovices_document_type invoices_number
2013 1 1 1 2013 351 1
2013 1 1 2 2013 351 1
正如您所看到的,发票2013-351-1使用可以在invoices_2表中添加多1次,这是必须禁止的。
答案 0 :(得分:0)
最好将第二个编号系统放在自己的表中。
Invoice
-------
year
document_type_id
number
invoice_2_fk
...
Invoice_2
---------
invoice_2 _id
year
market_id
cash_register_id
number
发票表中的发票2外键可以为空。如果它为空,则没有发票2.如果它是有效的ID,则会有发票2.这是一对零/一关系。