以两种不同的方式

以两种不同的方式

我在这上面有点挠头。这是场景。我正在使用Doctrine和YAML模式文件:

我有一个表用户和一个表事件

用户看起来像这样:

User:
    columns:
        id:
            type: integer(7)
        email:
            type: string(100)
        display_name:
            type: string(255)
        fb_id:
            type: string(100)
    relations:
        Event:
            type: many
            refClass: UserEvent


事件看起来像这样:

Event:
    columns:
        id:
            type: integer(7)
        initiator_id:
            type: integer(7)
        loc_latitude:
            type: decimal(11)
        loc_longitude:
            type: decimal(11)
        4sq_id:
            type: integer(11)
    relations:
        User:
            type: one
            local: initiator_id
            foreign: id
        User:
            type: many
            refClass: UserEvent


如您所见,问题是这样的:一个用户(或“发起者”)可以启动许多事件,而一个事件可以属于一个用户(“发起者”)。但是,一个事件也可以有许多用户加入,一个用户可以加入许多事件。

因此,事件和用户最终以两种不同的方式联系在一起。这是如何运作的?有可能这样做吗,还是我错过了什么?

最佳答案

我认为您只需要在两个表之间建立一个多对多关系。 UserEvent会告诉您哪些用户有哪些事件(反之亦然)...并通过UserEvent加入并添加WHERE user.id = event.initiator_id将使您能够访问用户发起的事件,前提是它们也属于这些事件。

10-08 07:19