首先,我甚至不知道如何调用该查询,但我敢打赌它是存在的。
我得到了一个包含事件的表,以及代表(Fix)人的数字,这些人将要去那个事件。好的,那么我有一个用户表,这些人都在那里,上面有事件的id。所以事件单元看起来像"1,5,22,47",人的身份。
问题是,我应该如何回应这个事件,每个人的名字?
活动:与爱德华、西蒙斯博士、沃克夫人的班级旅行
没有315345345次查询..。
表例:
事件:
用户:
就像:活动:
用户:
发布于 2015-04-30 21:50:15
我不建议将事件和与会者列表之间的关系存储到一个列中。这是很糟糕的做法。
相反,我将使用第三个表来映射事件和与会者之间的关系。换句话说,使用外键创建一对多的关系(主-细节,父-子)。
Check out this post for more information regarding database design patterns.
使用一对多的表,您可以编写一个简单的SQL查询来获取所需的数据。类似于:
SELECT Attendee FROM Event_Attendees WHERE Event LIKE $eventName这将返回特定事件的所有与会者的数组。当然,您需要使用mysqli或PDO准备好的语句。
这个Event_Attendees表基本上有两个主要列来建立这种关系:Event和Attendee。我通常使用自动增量整数作为主键索引.
发布于 2015-04-30 21:58:22
创建第三个表UsersEvents (或类似的内容):
然后添加行:
和
等
发布于 2015-04-30 21:57:35
您将需要为每一行创建一个函数,该函数将所有名称连接到一个字符串中,并按如下方式执行
从事件中选择EventId、EventName、udf_getPeople(EventId)
内部udf_getPeople
声明@everyone varchar(最大);
创建一个游标以获取与EventId顺序相关的人员
取每一行
将person字段连接到@everyone
当最后一个人遇到时关闭光标
把每个人都送回去
https://stackoverflow.com/questions/29978242
复制相似问题