2014-11-21 82 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

相關問題