我有点在这个问题上摸不着头脑。这是场景。我正在使用Doctrine和YAML模式文件:
我有一个表User和一个表Event
用户看起来像这样:
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
正如您所看到的,问题是:用户(或“发起人”)可以启动许多事件,并且事件可以属于一个用户(“发起人”)。但是,事件也可以包含许多加入它的用户,并且用户可以加入许多事件。
所以事件和用户最终以两种不同的方式相关联。这是如何运作的?是可以这样做还是我错过了什么?
答案 0 :(得分:1)
我认为你只需要两个表之间的多对多关系。 UserEvent将告诉您哪些用户有什么事件(反之亦然)...并通过UserEvent加入并添加WHERE user.id = event.initiator_id将允许您访问用户发起的事件,假设它们也属于这些事件。 / p>
答案 1 :(得分:0)
您只需添加一个event_attendees表,其中包含事件ID和用户ID作为两列?或者这不是问题