数据库设计有一个巨大的多态表

时间:2015-01-23 13:55:54

标签: mysql schema rdbms

我有一个MySQL数据库,有许多不同的类型需要很多相同的东西。例如,我们有reservationscustomersaccounts的表格,每个表格都需要EAV类型的属性和一组权限配置。

我的问题是:我应该让EAV和权限实现多态吗?那么,每个预订,客户和帐户都会获得可以插入entity_id表的entity_type_id| entity_id | entity_type_id | attribute_id | value |?然后,只要创建了新的预订,客户或帐户,就会需要插入entities | id | entity_type_id |表。

或者我应该有reservation_eavcustomer_eavaccounts_eav表吗?我们将始终知道我们正在寻找的实体类型,因此不需要在单个查询中返回多种类型的实体。但是,在几种情况下,我们需要抓取多个相同类型的实体。

我对多个表的理由是严格的性能。会有大量的预订,而不是很多账户,客户介于两者之间。我的一部分认为这一大量预订会减慢帐户/客户AV的查询速度。但是,我不知道在正确索引的情况下性能优势是否显着,我觉得单个多态表会使架构更简单。

0 个答案:

没有答案