我有一家电子商务商店,我将制定一个忠诚度计划。每次购买后,用户都会将奖金接收到自己的帐户中。
我有:users
表orders
表
我需要了解如何正确执行操作。我的想法:
创建一个表user_bonuses(user_id
,order_id
,bonuses
)
在users
表-bonuses
上创建一个新列
在orders
-bonuses
上创建一个新列
最佳答案
第一:users
和orders
之间存在关系。然后,您在users
中将orders
P.K称为F.K。因此,您可以将bonuses
设置为orders
。如果将其设置为users
,则找不到以下问题:用户在哪个orders
中获得奖金。因此,通过将bonuses
设置为orders
,可以保存更多信息。
但是,您可以使用users
中的另一列来保存所有users
奖金的总和。在更多设计中不需要此专栏。但是,它与orders
的记录数有关。
第二:将bonuses
作为列或表。
它与某些条件有关:bonuses
的数据(列)。如果bonuses
中有很多列,则最好为其添加一个新表并将其与orders
关联(基于我的第一点)。
如果bonuses
中有一些列,例如amount
和created_date
,则最好将它们保留为orders
中的列。
但是,您可以使用像bonuses_types
这样的新表,并将所有bonuses
的所有通用和基本信息保存在其中。然后基于1或2,可以将bonuses
用作表或列。
关于mysql - 成员(member)计划数据库设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48365507/