什么时候不应该使用多态关系?



当有6个常见列和2列带有不同名称的列时,可以使用polymorphic relation

我需要跟踪汽车maintenancerefueling

maintenances - table
    -date
    -km_driven
    -info (refers to maintenance info )
refuelings - table
    -date
    -km_driven
    -amount (refers to amount in liters)

那么,我是否应该使用多态关系?如果每个型号有更多不同的列?

还可以吗?

imho对于您的情况,我会选择单个表sharsto (sti(,但是您需要一个像this this this citterenco/partentenco/farther的库,或者这个nanigans/single--餐桌命名。

Laravel代码库在没有外部库的情况下不支持STI。您可以尝试使用多态性关系来解决您的案例,但最终将获得3个不同的表。我认为您想使用一个带有两个甚至三个型号的表格,所以我的建议是尝试上面的STI库之一。

当您的模型具有共享数据/状态时,

STI是合适的。共享行为是可选的,因为可以根据模型来定义。一个例子可能是不同类型的车辆模型:汽车,卡车,自行车等。

使用多态关系,模型可以belong_to具有单个关联的几个模型。当几个模型没有关系或彼此共享数据,而与多态性类有关系时,这很有用。一个示例可以是注释可以属于其他型号的模型:用户,post,image 等。

最新更新