替代将数组存储在Mysql数据库的单个字段中

时间:2014-11-21 04:47:35

标签: php mysql arrays field

如何避免在一个字段中存储用户数组?我有一个会话表,其中包含一个带有加入会话的用户ID的字段(joinusers_id)。如何插入它们?简单的方法是用逗号分隔它们,但我想这不是最有效的方法。附件是我当前实现的会话表的屏幕截图: What is currently in the table

1 个答案:

答案 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