如何避免在一个字段中存储用户数组?我有一个会话表,其中包含一个带有加入会话的用户ID的字段(joinusers_id)。如何插入它们?简单的方法是用逗号分隔它们,但我想这不是最有效的方法。附件是我当前实现的会话表的屏幕截图:
答案 0 :(得分:1)
好的,我们正在谈论数据库和规范化。
http://en.wikipedia.org/wiki/Database_normalization
不,请不要使用非原子字段,如果你想加入这样的非原子字段,那就很糟糕了,你会遇到麻烦。
我建议你这样做:
您有用户,因此请创建一个用户表,其中包含属于用户的所有内容。 用户表需要主键: user_mailaddress
您有会话,创建会话表...主键: session_id
现在创建一个表 user_session ,此表有两个属性(列) user_mailaddress 和 session_id 使用此表可以连接两个表在一起。
SELECT *
FROM user
NATURAL_JOIN user_session
NATURAL_JOIN session
自然连接将连接表,其中属性和属性的内容是可比较的。
注意:表格用户和会话称为实体。表 user_session 称为关系。所以这被称为实体关系模型。 => http://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model
更深入地阅读: https://www.stat.auckland.ac.nz/~paul/ItDT/HTML/node42.html