【问题标题】:more on symfony2 doctrine and relations更多关于 symfony2 的学说和关系
【发布时间】:2012-08-02 14:02:04
【问题描述】:

所以现在我已经设置了我的幻灯片容器,例如: 地理区域、建筑、服务器

在不同的实体中,从一个超类映射。

现在我面临的下一个问题是:我希望能够将这些容器的内容与其中一个容器相关联...

这就是我最初只是考虑拥有一个容器实体并使用 INT 标志设置容器类型的原因,但我认为从 OO 方面来说这并不顺利或不正确。

现在,我当然可以在我的实体“内容”中为每个可能的容器设置 FK 字段,并将它们设置为可为空并只使用其中一个,但我觉得我在这里陷入了困境,想想开箱即用...我想让获取容器及其相关内容尽可能简单...

每个内容仅与一个容器相关,因此在从不使用多个 FK 字段时拥有 3 个 FK 字段感觉很愚蠢...

【问题讨论】:

    标签: php database symfony doctrine


    【解决方案1】:

    您有两种解决方案。第一种是使用继承:Inheritance Mapping,但您的数据库中会有一些冗余。

    第二种解决方案是在您的 Child 实体中添加一个 FK,而不是在您的 Mother 实体中添加三个。 因此,您将在 Mother 超类中存储公共数据。

    【讨论】:

    • 不确定我是否遵循,也许我不清楚。假设我有一个 geoarea 母实体和一个建筑母实体,然后我有 3 个子实体(幻灯片的幻灯片)。其中两个子实体将属于地理区域母实体,一个将属于建筑物母实体。我无法通过在母实体中放置 FK 来解决这个问题,因为那里存在一对多的关系。一种解决方案是将 FK 放在孩子中,但是对于每种类型的母实体,我都需要一个 FK,对吗?为 GUI 做这些表格时似乎很麻烦。我会看看nb1谢谢
    • 也许我不明白你的问题,但是如果你在孩子和母亲之间有一个多对一关系,它会在你的孩子中创建一个引用你母亲的 FK。
    • 我意识到我在处理同一个对象,所以我添加了一个子属性 container_type 和 FK:ed,所以现在我只对所有类型的容器使用一个实体。有时计划有点偏离……至少对我来说 =)
    猜你喜欢
    • 2013-12-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 2013-04-20
    • 1970-01-01
    相关资源
    最近更新 更多