我有一家电子商务商店,我将制定一个忠诚度计划。每次购买后,用户都会将奖金接收到自己的帐户中。

我有:


users
orders


我需要了解如何正确执行操作。我的想法:


创建一个表user_bonuses(user_idorder_idbonuses
users表-bonuses上创建一个新列
orders-bonuses上创建一个新列

最佳答案

第一:usersorders之间存在关系。然后,您在users中将orders P.K称为F.K。因此,您可以将bonuses设置为orders。如果将其设置为users,则找不到以下问题:用户在哪个orders中获得奖金。因此,通过将bonuses设置为orders,可以保存更多信息。

但是,您可以使用users中的另一列来保存所有users奖金的总和。在更多设计中不需要此专栏。但是,它与orders的记录数有关。

第二:将bonuses作为列或表。
它与某些条件有关:


bonuses的数据(列)。如果bonuses中有很多列,则最好为其添加一个新表并将其与orders关联(基于我的第一点)。
如果bonuses中有一些列,例如amountcreated_date,则最好将它们保留为orders中的列。
但是,您可以使用像bonuses_types这样的新表,并将所有bonuses的所有通用和基本信息保存在其中。然后基于1或2,可以将bonuses用作表或列。

关于mysql - 成员(member)计划数据库设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48365507/

10-15 18:20