2011-07-16 86 views
-1

用於存儲超長CSV數據的最佳MySQL類型是什麼?說50萬或更少的五十萬整數?適用於很長CSV數據的最佳MySQL類型

此外,向表中添加新列而不是向CSV字符串添加新值會有什麼好處/缺點? MySQL表格甚至可以有五十萬列嗎?

我會更新表的方式,一次一個5位整數,我需要通過CSV字符串或列搜索很多嗎?

基本上我正在做的是記錄我的哪個用戶投了某個想法,所以沒有人可以投多次。然而,沒有一定數量的想法,它不斷擴展,我不想向我已經相當大的用戶表添加任何東西。

爲每個想要投票的想法創建一個新表會更好嗎?

這裏最快/最少的處理密集路線是什麼?

+1

我已經回答了您的問題,但顯然您不知道使用關係數據庫的基本概念。您提出的兩種解決方案(CSV中單個列中的許多值或每個用戶 - 想法對中的一列)都表明對如何將數據及其關係存儲在數據庫中的無知。你需要挑選一本關於數據庫設計的好書並閱讀它。第一或第二章應該讓你直觀。 –

回答

2

用戶和他們投票的想法之間的關係應該由一個表格來表示,該表格包含標識用戶的列和標識該想法的列。當用戶對某個想法進行投票時,可以在該表中插入一行。列對是此表的主鍵,它強制唯一性(防止重複投票)。

+0

我將要創建一個Ideas表,其中包含以下信息:想法的簡短描述,誰提出了想法,提交想法時的時間戳等等。還有一個想法序列號設置爲自動增量,這將會成爲主意和主要關鍵的主要標識符。那麼如何最好地將Idea桌和Idea Votes桌一起使用呢? – raplhie

+0

我已經描述瞭如何最好地模擬想法和用戶(又名投票)之間的關係在你回答的答案。你的「想法序列號」是這個第三表中的外鍵,以及用戶的標識符,以形成表示用戶對意見投票的(用戶,意見)對。 –

1

而不是在一行中爲用戶添加所有投票,而是爲每個投票和用戶創建一行。該表包含兩列1.用戶和2.用戶投票的想法。這解決了您的問題,並使您可以在未來更輕鬆地完成更多任務;例如。計算某個想法的投票數。

相關問題