2014-01-16 147 views
0

我是数据库设计的新手。在我的情况下,我必须为每个产品的每个用户生成很多密钥。所以,我有两个选择 -关于数据库设计的建议

  1. 创建的product_id和关键一个表的所有用户,或
  2. 为每个用户

创建一个单独的表在前一种情况下,我将有一个单个表格但查询可能需要更多时间,因为所有条目都在同一个表格中供所有用户使用。 在后面的例子中,查询可能会更快地返回结果,但会有更多的表,并且如果用户跨越了100或更多,那么这意味着很多表。

+2

_Always_创建一个表;数据库被设计为快速查询数据。 – Ben

回答

2

绝对不要为每个用户创建一个表。如果为所有用户创建单个表,则可以使用关系数据库设计并添加与每个用户有关的特定信息,如地址或员工信息,并将用户表中的主键用作外键。而且不会有明显的滞后。如果你想建立自己的用户和产品之间的关系,然后进行表像下面

user_product [table name] 

id [Primary Key] 
user_id [Reference key of user table] 
product_id [Reference key of product table] 
key 

这是你的表模式,必须使用维护会轻松许多

1

如果您生成每个表,那么对于数据库和关系管理来说这将会更复杂。所以,只需使用上面的行基本格式。

如果有帮助,然后让我知道。

谢谢

+0

你甚至不需要ID主键。使用(user_id,product_id)作为主键应该也是一样,并确保组合是唯一的(而不必定义单独的唯一键)。尽管如此,您希望在product_id上添加额外的索引,因为默认情况下,索引本身没有索引。 – mrjink

+0

@JigarChaudhary感谢您的回复,我只需要一个建议,我已经有了架构。 –