用于保存数组的SQL结构?

JoJ*_*JoJ 2 php sql multidimensional-array

如何将表与另一个表中的多个记录相关联?

基本上,我有一个"事件"表,如何跟踪特定事件中的"用户"(在他们自己的单独表中)?现在我在'event'表中只有一个列,其中包含已加入该'event'的用户ID的逗号分隔列表.

必须有更好的方法来做到这一点......对吗?

Mic*_*ski 5

通常,您有一个表users_in_event,该events表以与表的多对多关系为每个用户保存一行.因此,对于每个事件,您将有多个表行单独映射到用户.

CREATE TABLE users_in_event
( 
  user_id INT,
  event_id INT,
  FOREIGN KEY user_id REFERENCES users (user_id) ON UPDATE CASCADE,       
  FOREIGN KEY event_id REFERENCES events (event_id) ON UPDATE CASCADE
  -- Optionally, use ON DELETE CASCADE for the events foreign key
  -- FOREIGN KEY event_id REFERENCES events (event_id) ON UPDATE CASCADE ON DELETE CASCADE
)
Run Code Online (Sandbox Code Playgroud)

要找出事件中的哪些用户,请执行以下操作:

SELECT 
  users_in_event.user_id,
  users.name
FROM users JOIN users_in_event ON users.user_id = users_in_event.user_id
WHERE event_id=1234;
Run Code Online (Sandbox Code Playgroud)