【问题标题】:FK in a Laravel polymorphic relationLaravel 多态关系中的 FK
【发布时间】:2016-08-30 11:08:00
【问题描述】:

您好,我在 laravel 中使用了多态关系:official doc

基本上,这个想法是为了能够邀请一个用户加入多个对象(锦标赛、团队、协会、俱乐部等......)

所以,我的“邀请”表是这样的:

(id, object_id, object_type, user_id, other_fields)

object_type 是类的名称('App\Tournament'、'App\Team' 等),object_id 是 FK。

但是这种方式,我不知道如何使用object_id作为MySQL(MariaDB)外键,可以吗???

【问题讨论】:

    标签: mysql laravel polymorphism


    【解决方案1】:

    这是不可能的,多态性背后的整个想法是object_id 字段没有指向另一个表。

    您不能说 object_id 在表“X”上引用 id,因为情况并非总是如此。

    【讨论】:

    • 是的,我知道,但那样一来,我的数据库就会失去完整性。所以,我是粉丝,但不是一个大粉丝......我认为 mysql 有一种解决方法来解决这种常见的东西
    • 您仍然可以在检查每件事时使用事务“手动”检查完整性...
    • 我认为这里不需要事务的东西,但在删除你的邀请表中的一行之前,你可以手动检查其他是否有依赖关系,如果是,则抛出异常。就你而言,就你给我们的东西而言,它似乎只是一个数据透视表(有点),所以我什至不确定你是否必须检查依赖关系。你到底害怕什么?
    • 我不害怕,我只是想在我的数据库中保持完整性。如果我在这个领域没有 FK,那么就有可能有垃圾数据......
    猜你喜欢
    • 2019-01-22
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 1970-01-01
    • 2017-05-13
    相关资源
    最近更新 更多