ORM';s无法处理组合关系-poopy 所以我已经看了主义,推进,雄辩,到目前为止,他们中没有人想考虑中间表的存在,中间表有两个表之间的混合关系。

ORM';s无法处理组合关系-poopy 所以我已经看了主义,推进,雄辩,到目前为止,他们中没有人想考虑中间表的存在,中间表有两个表之间的混合关系。,orm,doctrine,laravel,propel,eloquent,Orm,Doctrine,Laravel,Propel,Eloquent,person与personVehicle有一对多的关系,这是通过personId的主键实现的 vehicle与personVehicle具有一对一的关系,这是通过vehicleId的主键实现的 到目前为止,我研究过的所有ORM都处理单数关系 一对一 一对多 多对多 但不是任何两个或更多的组合。是这样吗?使用ORM或替代方案(如果可用)插入这些关系(个人、车辆和个人车辆各自id)的最佳方式是什么?您描述的关系实际上是一个用户与多个车辆之间的一对多关系 如果“vehicle”和“personVehi

person
与personVehicle有一对多的关系,这是通过
personId
的主键实现的

vehicle
与personVehicle具有一对一的关系,这是通过
vehicleId
的主键实现的

到目前为止,我研究过的所有ORM都处理单数关系

  • 一对一
  • 一对多
  • 多对多

  • 但不是任何两个或更多的组合。是这样吗?使用ORM或替代方案(如果可用)插入这些关系(个人、车辆和个人车辆各自id)的最佳方式是什么?

    您描述的关系实际上是一个用户与多个车辆之间的一对多关系

    如果“vehicle”和“personVehicle”之间存在“一对一”关系,则“personVehicle”本质上是“vehicle”表的扩展。如果数据库已完全填充,则两个表中的行数将相等,每个vehicleId对应一行。您可以使用通用vehicleId作为索引,将“vehicle”和“personVehicle”表组合在一起,而无需数据或关系歧义

    无论如何,如果你真的想用这种方式创建你的表,你可以创建三个模型,让personVehicle成为它自己的东西。照你说的做


    车辆-(一对一)-个人车辆-(多对一)-用户

    您描述的关系实际上是一个用户对多个车辆之间的一对多关系

    如果“vehicle”和“personVehicle”之间存在“一对一”关系,则“personVehicle”本质上是“vehicle”表的扩展。如果数据库已完全填充,则两个表中的行数将相等,每个vehicleId对应一行。您可以使用通用vehicleId作为索引,将“vehicle”和“personVehicle”表组合在一起,而无需数据或关系歧义

    无论如何,如果你真的想用这种方式创建你的表,你可以创建三个模型,让personVehicle成为它自己的东西。照你说的做


    车辆-(一对一)-个人车辆-(多对一)-用户

    这是一个老问题,但我无意中发现了它,并认为我应该加上我的2美分

    虽然我不知道对象的确切域,但vehicle和personVehicle可能是表继承的好候选对象。这是信条所提供的:


    这里的诀窍是车辆模型(表)包含与车辆相关的所有公共字段,但这些字段是抽象的,从未使用过。仅使用子型号-在本例中为personVehicle。然后,您也可以轻松添加其他子类车辆。

    这是一个老问题,但我偶然发现了它,并认为我应该添加我的2美分

    虽然我不知道对象的确切域,但vehicle和personVehicle可能是表继承的好候选对象。这是信条所提供的:

    这里的诀窍是车辆模型(表)包含与车辆相关的所有公共字段,但这些字段是抽象的,从未使用过。仅使用子型号-在本例中为personVehicle。然后,您也可以轻松地添加其他子类的车辆