2011-04-05 209 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用户表。

节省空间和时间 - 再加上它更干净。

相关问题