用户的数据库建模 table 有 2 种类型的用户
Database Modelling of users table having 2 tyes of users
我正在为一个数据库建模,该数据库将保存与商店销售相关的数据。我有两种不同类型的用户,它们具有不同的属性。
在我的标准化过程中,我创建了一个 User1 Table 和一个 User2 Table.
我遇到的问题是跟踪销售情况。例如,如果我想跟踪某种产品的特定类型用户的销售情况并了解该产品的用户购买趋势,我将不得不创建两个 tables,Bread1和Bread2两类用户。
我想出了一个解决方案,但我不知道长 运行 对性能的影响,或者它是否是最佳解决方案。解决方案是拥有一个统一的 table User,其中包含两个用户的 ID。
如果有其他更好的解决办法,不胜感激。
谢谢
最好只有一个 table 用于 Users
和一个用于 Products
等等。您可以通过创建另一个 table 来对您的用户或产品进行分组。
UserTypes(UserTypeId PK, ...)
Users(UserId PK, UserTypeId FK, ...)
对于您提到的用户甚至产品的属性,您可以在 table 中有一个属性列表,并由第三个 table 将它们分配给用户。
Properties(PropertyId PK, Name)
UsersProperties(UserPropertyId PK, UserId FK, PropertyId FK, Value)
我正在为一个数据库建模,该数据库将保存与商店销售相关的数据。我有两种不同类型的用户,它们具有不同的属性。
在我的标准化过程中,我创建了一个 User1 Table 和一个 User2 Table.
我遇到的问题是跟踪销售情况。例如,如果我想跟踪某种产品的特定类型用户的销售情况并了解该产品的用户购买趋势,我将不得不创建两个 tables,Bread1和Bread2两类用户。
我想出了一个解决方案,但我不知道长 运行 对性能的影响,或者它是否是最佳解决方案。解决方案是拥有一个统一的 table User,其中包含两个用户的 ID。
如果有其他更好的解决办法,不胜感激。 谢谢
最好只有一个 table 用于 Users
和一个用于 Products
等等。您可以通过创建另一个 table 来对您的用户或产品进行分组。
UserTypes(UserTypeId PK, ...)
Users(UserId PK, UserTypeId FK, ...)
对于您提到的用户甚至产品的属性,您可以在 table 中有一个属性列表,并由第三个 table 将它们分配给用户。
Properties(PropertyId PK, Name)
UsersProperties(UserPropertyId PK, UserId FK, PropertyId FK, Value)