2011-04-05 212 views
8

數據庫中有多少表可以有限制嗎?這會被認爲是不好的編程或什麼?我有很多用戶信息,我想知道是否可以有很多表?數據庫中有多少表可以有限制嗎?

+2

我在這裏沒有看到問題。如果你有「大量的用戶信息」,我只需要計算一個表:「user_information」(或類似的東西)。 – KingCrunch 2011-04-05 23:06:46

回答

8

如果你正在考慮這個問題,你應該改變你打算存儲數據的方式。通常認爲有一個數據庫模式是一種不好的做法,其中表的數量會隨着時間增長。存儲數據的更好方法是識別列(如用戶標識)併爲每個用戶使用一行。對於不同類型的數據,您可以有多個表格,但不應爲每個用戶都有表格。

+0

爲什麼它不好,先生? – bhawin 2013-10-10 06:45:07

+0

多年的數據庫理論和設計最佳實踐基於表格作爲數據類型,行作爲數據的實例。您會發現大多數模式,庫和數據庫工具(包括SQL!)都基於這些假設。通常,當您需要向系統中添加新類型的數據記錄時,您應該只向表中添加一個表。 – Joshua 2013-10-16 22:20:24

3

通常不是邏輯限制no。但是這個問題引起了討論 - 你爲什麼會認爲你可能會達到極限?如果你要創建許多表格,那麼這就好像你真的想創建許多行,也許你可以詳細說明你的想法,以便我們可以提供一些模式指導。

3

一般來說,如果有的話,限制應該足夠大,不用擔心。如果你發現自己擔心它,你會遇到更大的問題。例如,如果您正在處理有訂單的客戶,則可以爲客戶創建一個表格,併爲訂單創建一個表格。您不應該爲每個客戶創建一個表。

4

不,mysql對數據庫中表的數量沒有限制,但顯然你會受限於你有多少磁盤空間可用。

這就是說,如果你問這個問題,你的預期設計可能相當難看。

1

我可以看到有些人可能想要一個表的每個用戶的原因。如果每個用戶隨着時間的推移將有越來越多的日誌/條目/行,並且您不希望代碼必須通過查找僅匹配特定用戶ID的行的巨大列表進行排序,那麼應用程序將會簡單地查找具有給定用戶ID的表,然後該表中的所有內容僅針對該用戶。當想要爲一個特定用戶比較和分類數據時,它會提高性能。我已經使用這種方法,儘管只有不到一百個用戶。不確定成千上萬的用戶可能會遇到什麼後果。

0

爲什麼把用戶放在自己的表中?看起來像是浪費時間給我。每次添加新行時識別ID都會增加的一個用戶表格可以正常工作。

該ID可能是其他表的外鍵,如「Blog_Posts」 - 每篇博文都需要一名作者,因此您可以使用「AuthorID」列來關聯您的用戶ID用戶表。

節省空間和時間 - 再加上它更乾淨。

相關問題