2008-11-15 64 views
0

我需要在mysql中存儲100-200個數據,這些數據會被管道分開..PHP MYSQL - 一列中有很多數據

任何想法如何將它存儲在mysql?我應該使用單個列還是應該製作多個列?我不知道有多少數據用戶會輸入。

我做了一個表格,它停在需要存儲多個數據的部分。

任何人都知道如何在單個列中存儲多個數據,或者有沒有其他方法?

請幫助我..

非常感謝你

回答

4

您應該用數據源的ID實現您的表。這個ID將被用來分組所有這些相似的數據,所以你不需要知道你有多少事先知道。

你的表列和數據可以設立這樣的:

sourceID  data 
--------  ---- 
     1   100 
     1   200 
     1   300 
     2   100 
     3   100 
     3   200 

當你查詢數據庫,你可以拉中的所有數據具有相同的sourceID。使用上面的數據,以下查詢將返回兩個數據。

SELECT data 
FROM dataTable 
WHERE sourceID = 3 

如果你有多個表,你需要將它們互相利用JOIN語法關聯。假設您有一個包含用戶數據的主表,並且您想將所有這些輸入數據與每個用戶相關聯。

userID userName otherData 
------ -------- --------- 
    1   Bob   xyz 
    2   Jim   abc 
    3   Sue  lmnop 

如果你想從這個表(用戶表),從數據表的數據連接數據,使用這樣的查詢:

SELECT userID, userName, data, otherData 
FROM userTable 
LEFT JOIN dataTable 
ON userTable.userID = dataTable.sourceID 
WHERE userTable.userID = 1 

該查詢會給你所有的數據的用戶ID爲1.這假定數據表中的sourceID使用用戶表中的userID來跟蹤額外數據的屬性。

請注意,這不是SQL中唯一的JOIN語法。您可以瞭解其他類型的連接here

1

如果您擁有的這個數據是從哪裏來的形式,從表單每個輸入存儲到它自己單獨的列。

尋找在您的數據關係:聽起來你有一個「有很多」關係這表明你可能需要一個鏈接表,你可以做一個簡單的連接查詢......

在一個單一的存儲多個數據列將是一個噩夢的查詢和更新,除非你存儲的XML,事件然後它會給我做惡夢...

1

聽起來像你需要一個連接表。在兩個表中只需要你需要的數據,用兩個表的ID創建第三個表,然後無論你需要100,200,300還是更多,都無關緊要。