具有2个用户的用户表的数据库建模

时间:2015-04-24 05:49:53

标签: mysql database modeling database-normalization

我正在建模一个数据库,该数据库将保存与商店销售相关的数据。我有两种不同类型的用户具有不同的属性。

在我的规范化过程中,我创建了一个 User1 表和一个 User2 表。

我遇到的问题是跟踪销售情况。例如,如果我想跟踪产品的特定用户的销售情况并知道用户购买该产品的趋势,我将需要创建两个表, Bread1 Bread2 < / strong>适用于两类用户。

我提出了一个解决方案,但从长远来看,我不知道其性能影响,或者它是否是最佳解决方案。该解决方案是一个统一的表格用户,其中包含两个用户的ID。

如果还有其他更好的解决方案,我将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:3)

最好只为Users创建一个表,为Products创建一个表,依此类推。您可以通过制作另一个表格来轻松地对用户或产品进行分类。

UserTypes(UserTypeId PK, ...)

Users(UserId PK, UserTypeId FK, ...)

对于您为用户甚至产品提及的属性,您可以在表格中列出属性列表,并通过第三个表格将其分配给用户。

Properties(PropertyId PK, Name)

UsersProperties(UserPropertyId PK, UserId FK, PropertyId FK, Value)