2011-06-08 45 views
0

我需要關於創建表或表集合來處理這個獨特問題的最佳方法的意見。基本上,我正在設計這個網站的商業資料。個人資料表包含所有常用的內容,如姓名,唯一身份證號碼,地址等。現在,該網站的整個想法是,它將收集一小串信息文本。我希望允許客戶能夠按照日期存儲一個日期,提前多達30天。該計劃只會顯示當前日期的信息,並顯示過期日期。MYSQL數據庫模式問題

我可以真正看到這一切的唯一方法是由唯一ID,日期和信息塊組成的表格,但這會創建相當廣泛的查詢。最終,這張桌子至少比企業表格大20倍,因爲這些企業將能夠使用他們的唯一ID在該表格中張貼多達30個項目。

現在,想象一下搜索頁面會顯示該地區的商家列表,然後需要查詢新表格中的所有這些ID,以獲取我想根據日期顯示的信息塊。我敢肯定,這將是一個相當密集的查詢,只是爲了顯示一個相當簡單的文本塊,但我想這就是狀態更新對社交網站的一般工作原理嗎? Facebook是否將更新存儲在與用戶ID號綁定的更新表中或讓他們想出更好的方法?

我只是想更深入地瞭解數據庫設計,所以拋出你可能有的想法。

+1

嗨雅各布。 5個問題,0個接受的答案。請[閱讀常見問題解答](http://stackoverflow.com/faq)並瞭解該社區的運作方式。 – stefgosselin 2011-06-08 03:14:33

+0

問題太開放了。無論如何,使用適當的索引和(某種)區域的查詢可能並不昂貴。 – pascal 2011-06-08 04:41:45

+0

我不想猜這可能是什麼「一串信息文本」,但大多數企業在30天內不會輸入30個項目,所以包含豐富文本的表格可能不會像您想象的那麼大。 – pascal 2011-06-08 04:43:41

回答

0

我真的可以看到這個正在做的唯一途徑是由該UNIQUEID,日期的表格和文本的信息塊...

假設你指的是輪廓UNIQUEID,而不是文本表格的唯一ID,您是正確的。

正如pascal在他的評論中所說的,你需要一個uniqueID和日期的主索引。一個人只能在給定的日期輸入一行文字。

如果要檢索下一個文本行的人,你的SQL查詢將有以下條款:

WHERE UNIQUE_ID = PROFILE.UNIQUE_ID 
AND DATE >= CURRENT_DATE 
LIMIT 1 

既然你有UNIQUEID和日期指標,這應該是一個快速查詢。

如果要檢索某個特定的人,未來5個文本,你只需要做出一個變化:

WHERE UNIQUE_ID = PROFILE.UNIQUE_ID 
AND DATE >= CURRENT_DATE 
LIMIT 5