记录所有活动更新的数据库架构

时间:2018-11-07 04:01:43

标签: sql database-design relational-database

我正在构建一个用于下单订购诊所狗的应用程序。下表如下:

Clinic [id, name, email]
Dog [id, name, age, weight]
Order [id, price, status, clinic_id, dog_id]

现在,我希望功能可以在以下情况下记录所有更新/活动更改:

  • 下订单。
  • 订单状态标记为已发货。
  • 用户更新上述表格中任何列的值
  • 创建了新的狗或诊所。
  • 依此类推。

我有两个主意:

  1. 创建一个中央活动表,并将消息和id类型一起存储。

    Activity [id, type, description]

    [1, dog, 'New dog tommy was added']

  2. 为每种类型创建一个单独的表,并通过活动表路由所有日志。

    Activity [id, type, type_id]

    DogActivity [id, description, extra_cols......]

    ClinicActivity [id, description, extra_cols......]

在方法1中,我可以看到可能存在两个问题:  1.如果数据库变大,则会出现扩展问题  2.根据类型可以有额外的列。所以会有很多空列?

方法2中。如果通过API检索/更新数据的处理复杂性是否存在问题?

请让我知道如何为这个问题设计一个好的解决方案?

0 个答案:

没有答案