2013-04-02 27 views
0

我可以使用一些幫助構建數據庫。我目前有一個DB和一個名爲列表的列表,其中包含8列(名稱,聯繫人,地址...),它們包含有關每個組織的信息。yelp或評論網站的數據庫模式會是什麼樣子?

接下來,我想設置一個評論數據結構來存儲和檢索評論者信息(名稱userName,日期評論,評論...)。 這是我的當前猜測在問題...

1)在一個巨大的表中的每個組織

2)單獨的列中,每件評數據(每個業務,所以像5列)的一個單獨的表?

3)每個數據一張表(所以用戶名一張表,一張表的註釋...)?

第一個看起來很瘋狂(因爲如果你有500個實體,那麼你有500個表)。

第二個向我扔了一個mysql錯誤,當我運行一個php腳本,我寫了添加像200個實體* 5個數據(1000列)。不太記得錯誤,像mysql的東西:太多列(當我查找它時,參考說這是因爲我已經添加了太多的列)

第三看起來可能是正確的方式。最後,我計劃擁有大約3000個組織,加上我可能有的很多評論,可能每個組織有20個(估計)。

這三個模式選項中的哪一個看起來最合理?

回答

0

查找第三範式,瞭解如何構建關係dbms。

但是,你應該有一個情侶表,每個表將有一個ID

A)組織表組織名稱等

B)地址表與本組織ID參考(這樣你可以有多個地址,以一個組織)

C)與外鍵參照組織ID和用戶ID

d)用戶的審查表的表,用他們的密碼可能是因爲散列。

通過引用回組織ID,您可以擁有1:MANY關係,1組織可以擁有多個地址和評論。

從我看到的情況來看,您只需要4張桌子,如果要解決的組織是1:1關係,您可以將地址放在組織表中,雖然這有點懶,可能會在稍後咬你。

您的評論表將包含您的所有評論,並且您將使用外鍵爲用戶或組織提取評論。例如。 「從Table_Reviews中選擇* Where WHERE Organization_id = 10」。如果您在組織表中查找ID = 10,則知道審查的目的是誰。

+0

感謝您的答案......感謝關於密碼哈希的提示。有沒有一個預定義的PHP函數(像java中的那個)還是我構成的東西? –

+0

http://www.php。淨/手動/ EN/function.hash.php – HaMMeReD

相關問題