稀疏数据/列(EAV,动态列/ blob?)

时间:2014-10-29 15:27:36

标签: mysql mariadb

我正在为有多个约会的客户设计一个数据库。

约会部分相同,因为它们都有日期(时间戳),分配的员工(int,外键 - &gt;员工表),约会种类(int,外键 - &gt; appointmentTypes)等。< / p>

到目前为止,上面的信息都可以插入到包含每个属性列的漂亮关系表中。

事情是,有多种约会都有不同的问题。如果是第一次预约,例如,在返回预约时会询问不同的问题。有几十种不同类型的约会,稍后会有更多的约会(会有一些尚未存在的问题)。

如何处理这些不同类型的动态问题?我有一些我自己想到的选择:

  • 将所有列添加到约会表中。缺点:一个非常宽的表,其列不用于许多行。许多列仅用于某些行。
  • EAV。缺点:EAV的已知缺点。许多连接,EAV表中的许多行。人们说当它变大时很难管理。
  • 包含所有动态列的BLOB为JSON / XML。缺点:根据标准选择数据更加困难。很难对列数据施加要求。
  • 动态列(可能在MariaDB中)。缺点:它看起来类似于带有JSON / XML的BLOB,所以我猜它有相同的缺点,但我不确定。
  • 为各种约会制作不同的表格。缺点:每个约会必须加入数十个表。某些约会具有相同的字段,这些字段必须在共享这些属性的所有表中可用。

我的问题如下:知道每个解决方案都不完美,什么是最佳实践?谢谢你的时间!

0 个答案:

没有答案