2012-04-05 66 views
1

我一直在想在PHP中創建一個論壇,所以我做了一些研究,看看人們在數據庫中創建的表的標準是什麼。在我查閱的大多數網站上,他們總是選擇一個表格用於線索,另一個用於線索上的帖子。PHP論壇數據庫優化

擁有一個線程表似乎對我來說是完全理性的,但是在一個表中保留所有線程上的所有帖子似乎有點太多了。爲每個線程創建一個表來保存該線程的帖子,而不是在一個表中粘貼幾十萬個帖子會更好嗎?

+1

您沒有指定要使用哪個數據庫,但其中大多數可以輕鬆處理具有數百萬行的表。有機會,你不會有這麼多帖子,所以你會沒事的。爲每個線程創建一個表並不是要走的路。 – NullUserException 2012-04-05 14:25:53

+0

謝謝。我並不是真的在做論壇,這只是一個假設性的問題。 – Zizo47 2012-04-05 20:51:06

回答

3

這些表應表示數據庫中數據的結構。如果你有2個對象,在這個例子中是你的線程和你的帖子,你應該把它們放在2個表格中。

相信我,如果你按照自己的想法去做,這將是一場噩夢,試圖找出適合每個帖子展示的表格。 SQL看起來像什麼?類似於

SELECT * 
FROM PostTable17256 

並且您將不得不在每個請求上動態構造此查詢。

但是,通過使用1個表,您可以簡單地獲取一個ThreadID並將其作爲變量傳遞給您的查詢。

SELECT * 
FROM Posts 
WHERE ThreadID = $ThreadID 

關係數據庫被設計爲具有容納大量行的表。順便說一句,你可能會對DBA認爲是「很多」感到驚訝。在大多數地方,具有1,000,000行的表被認爲是小到中。

1

不準不準。數據庫愛巨大的桌子。將帖子拆分爲多個表格會導致許多令人頭痛的問題。

0

將帖子存儲在一張表中是最佳解決方案。
MySQL可以很容易地在表中容納數百萬行。

創建多個表格可能會導致很少的問題。 例如,您將無法使用來自不同線程的帖子的JOIN。