首先,我甚至不知道如何调用该查询,但我敢打赌它存在。
我得到了一个包含事件的表格,以及代表(修复)人员的数字,他们将参加该事件。好的,然后我得到了一个用户表,其中这些人都是来自事件的id-s。事件单元看起来像" 1,5,22,47",人id-s。
问题是,我怎么能以每个人的名字来回应这个事件? :O有些人喜欢这样:
"活动:班级旅行:爱德华,西蒙斯博士,沃克夫人"
没有315345345查询......
表格示例:
活动:
- id,姓名,日期,人
用户:
- id,name
如此:事件:
- " 1"," Class trip"," May 2"," 1,2,5,6"
- " 2","博物馆参观"," 5月14日"," 5,6,8,1"
用户:
- " 1"," Edward"
- " 2"," Dr。西门子"
答案 0 :(得分:1)
我不建议将事件和与会者列表之间的关系存储到单个列中。这是非常糟糕的做法。
相反,我会使用第三个表来映射事件和与会者之间的关系。换句话说,使用外键创建一对多关系(主 - 细节,父 - 子)。
Check out this post for more information regarding database design patterns.
使用One-to-Many表,您可以编写一个简单的SQL查询来获取所需的数据。类似的东西:
SELECT Attendee FROM Event_Attendees WHERE Event LIKE $eventName
这将返回特定事件的所有与会者的数组。当然,您可能希望使用mysqli或PDO使用预准备语句。
这个Event_Attendees
表基本上有两个主要列来建立关系:Event
和Attendee
。我通常使用自动增量整数作为主键索引。