我目前正在开展一个项目,我即将为汽车零售制作一个概念模型。我的主要问题是处理Invoice_Line表之间的1对1的实现,该表与Invoice表明显处于N-1关系,以及一个名为Car的表,该表应该用它唯一的注册号保存有关特定汽车的信息。据我所知,如果我让Car表只包含有关汽车特定类型的信息,那就是它的模型,类等等,这不会是个问题。但我想要的是看起来像这样的发票:
这意味着在invoice_line和table之间使用特定的car_id进行1对1的实现,我想不惜一切代价避免这种情况。有什么进一步的可能性来解决这个问题?由于可区分汽车的每个发票行只能容纳1辆汽车,这是我的设计方式。
答案 0 :(得分:0)
发票行显示在一张发票中,所以在Invoice_Line
:
UNIQUE NOT NULL (invoice, invoice_line_number)
发票必须全部显示在Invoice
中,所以请说:
FOREIGN KEY (invoice_number) REFERENCES Invoice (invoice_number)
汽车在Invoice_Line
中是唯一的,所以这样说:
UNIQUE NOT NULL (car_registration_number)
汽车必须全部出现在Car
中,所以这样说:
FOREIGN KEY (car_registration_number) REFERENCES Car (car_registration_number)
发票行与发票车之间的 是1:1的关系。但这不是问题,因为该关系由Invoice_Line
中的汽车+发票行对(汽车+发票+发票行号三元组)表示。