与许多实体相关的活动的数据库模式

时间:2015-03-13 14:20:52

标签: mysql database database-schema crm

如何为数据库中的活动构建一个好的模式? 一项活动可以涉及50个不同实体中的一个。

目前我只看到3个解决方案:

  1. 表“activity”包含50列,其中包含与其他实体的外键。

    这导致了一张非常大的桌子,我不喜欢。

  2. 每个实体都有自己的“活动” - 表。

    这个解决方案导致我的数据库中的表几乎翻倍,但更清晰。仍然不是最好的解决方案。

  3. 脏一:“活动”-table包含一个“entityType”列,其中包含entity-table-name和另一个“entityId”列,其中id为实体。

    但是这个解决方案会破坏所有外键并允许在我的活动表中存储垃圾数据。

  4. 也许有人建立了CRM并且不得不面对同样的问题。 有没有人有更好更干净的解决方案?

1 个答案:

答案 0 :(得分:0)

就像我看到的那样,只有一个决定。第一种和第二种可能性是好的,因为保持db的一致性。在我的情况下,我决定使用1.可能性。