2014-11-21 83 views
0

如何避免将用户数组存储在一个字段中?我有一个会话表,其中有一个字段,其中包含加入会话的用户id(joinusers_id)。我应该如何处理插入它们?简单的方法是用逗号分隔它们,但我想这不是最有效的方法。附上的是我目前执行会话表的截图: What is currently in the table替代将数组存储在Mysql数据库的单个字段中

+0

请解释更多。不能够得到你,为什么你想加入会议? – Akilan 2014-11-21 04:56:15

+0

为什么不用'session_id'和'user_id'来创建表格? – 2014-11-21 05:13:43

+0

如果您想让用户更改邮件地址,请使用@Jack的建议并使用主键user_id。 – 2014-11-23 12:02:47

回答

1

好吧,我们正在谈论数据库和规范化。

http://en.wikipedia.org/wiki/Database_normalization

不,请不要使用非原子领域,它是坏的,你会得到的麻烦,如果你想加入这样的非原子领域。

我建议你这样做:

你有用户,所以请创建一个包含所有属于用户的事情用户表。 用户表需要主键:user_mailaddress

你有会话,创建一个会话 ...主键:SESSION_ID

现在创建一个表USER_SESSION,该表有两个属性(列)user_mailaddresssession_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

+0

非常感谢。这样可行。 – Andrey 2014-11-23 00:46:31

相关问题