数据库设计:如何表示关系中的条件?

Database design: How can you represent conditions in a relationship?

有些情况下,根据条件,一种类型的实体必须与另一种类型的实体相关联,例如:

  1. car entity可以是不同的types,可以是public服务车,比如出租车,也可以是私家车(家用车) .
  2. 根据汽车类型,您可能需要支付 obligations(this is the way I represent the taxes on a car) 费用。如果你有一辆私家车,你需要逐年纳税,但例如在某些国家出租车或public汽车必须额外缴纳税款才能在某个城市提供运送乘客的服务。
  3. 两种车都有一定的义务(税),不管是什么车,私人的还是public,都必须交税。但是每种类型的汽车都可以有自己的义务(税)类型来支付。

条件

根据车辆类型,必须支付 taxes/obligations 类型的费用。如果是私家车,您将缴纳正常税费,但如果是 public 汽车,您将缴纳正常税费,外加用于乘客运输的额外税费。 如何在数据库模型中表示这些类型的条件?

我试过的

我不确定它是否是表示这种情况的正确方法,但我使用的是中间 table,我称之为 obligation_type_of_car,它与 type of cartype of obligation。我也不确定从这个中间 table 到其他 tables.

放置什么基数

更新

我建议您将义务映射到 cartype,因为它与 cartype 相关联。

obligationtype 与 cartype 无关。所以,最好把它从cartype_obligationtable留下。您可以从义务 table.

派生义务类型
  • 汽车

  • car_type

  • 义务

  • obligation_type

  • 新 table: Cartype_obligation

    • car_type_id
    • obligation_id