忠诚度计划数据库设计

时间:2018-01-21 09:44:03

标签: mysql sql database-design

我有一家电子商务商店,我打算做一个忠诚计划。每次购买后,用户都会向自己的账户收取奖金。

我有:

  1. users
  2. orders
  3. 我需要了解,如何正确地做到这一点。我的想法:

    1. 创建表user_bonuses(user_idorder_idbonuses
    2. users表格上创建新列 - bonuses
    3. orders - bonuses
    4. 上新建一列

1 个答案:

答案 0 :(得分:1)

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

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

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

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