Database 数据库设计:发票建模

Database 数据库设计:发票建模,database,database-design,modeling,Database,Database Design,Modeling,我目前正在做一个项目,在这个项目中,我将为汽车零售制作一个概念模型。我的主要问题是处理Invoice_Line表(显然与Invoice表存在N-1关系)和一个名为Car的表之间的1:1关系,该表应该包含关于具有唯一注册号的特定汽车的信息。据我所知,如果我制作的汽车表仅包含特定类型汽车的信息,即车型、等级等,则不会有问题。但是,我想要的是发票如下所示: …汽车登记号。。。价格。。。日期 这意味着在发票行和带有特定车号的表之间建立1:1的关系,我想不惜一切代价避免这种关系。解决这个问题的进一步可能

我目前正在做一个项目,在这个项目中,我将为汽车零售制作一个概念模型。我的主要问题是处理Invoice_Line表(显然与Invoice表存在N-1关系)和一个名为Car的表之间的1:1关系,该表应该包含关于具有唯一注册号的特定汽车的信息。据我所知,如果我制作的汽车表仅包含特定类型汽车的信息,即车型、等级等,则不会有问题。但是,我想要的是发票如下所示:

  • …汽车登记号。。。价格。。。日期

  • 这意味着在发票行和带有特定车号的表之间建立1:1的关系,我想不惜一切代价避免这种关系。解决这个问题的进一步可能性是什么?因为可区分的汽车的每个发票行只能容纳1辆汽车,这是我的设计方法

    一个发票行出现在一张发票中,因此在
    发票行中这样说

    UNIQUE NOT NULL (invoice, invoice_line_number)
    
    发票必须全部出现在
    发票中
    所以说:

    FOREIGN KEY (invoice_number) REFERENCES Invoice (invoice_number)
    
    UNIQUE NOT NULL (car_registration_number)
    
    FOREIGN KEY (car_registration_number) REFERENCES Car (car_registration_number)
    
    汽车在发票行中是唯一的,所以说:

    FOREIGN KEY (invoice_number) REFERENCES Invoice (invoice_number)
    
    UNIQUE NOT NULL (car_registration_number)
    
    FOREIGN KEY (car_registration_number) REFERENCES Car (car_registration_number)
    
    车辆必须全部出现在
    Car
    中,以便说明:

    FOREIGN KEY (invoice_number) REFERENCES Invoice (invoice_number)
    
    UNIQUE NOT NULL (car_registration_number)
    
    FOREIGN KEY (car_registration_number) REFERENCES Car (car_registration_number)
    
    发票行和发票车辆之间存在1:1的关系。但这不是问题,因为在
    invoice\u line
    中,这种关系是由car+发票行对(car+发票+发票行号三元组)表示的