为可变数量的列

时间:2016-10-25 05:38:09

标签: mysql json database-design entity-attribute-value nosql

我需要设计数据库模式,其中列数和类型可以根据某些属性(比如类别)而变化。所以基本上我有一个超类,它将有一些共同的属性,子类(对于每个类别)将扩展这个类。经过一些研究后,我有一些解决方案,想要一些更好的建议吗?

  • 使用NoSQL并创建一个包含所有属性(所有类别)的表
  • 使用EAV型号
  • 在MySQL 5.7中使用Json数据类型
  • 为每个子类(类别)创建表

要求:所有数据都来自用户输入/表单。每天大约会有大约15,000个条目,类别数量会随着时间的推移而增加,但不会增加。我需要获取与每个类别相关的一些数据(特定时间范围),然后将其显示为一个通用仪表板。因此,如果我使用最后一种方法,那么我需要加入所有类别表,这将减慢过程。我已经阅读过关于在MySQL中使用Json类型的内容,直到现在我还没有得到这种方法的不足之处。使用NoSQL保持一个类中的所有字段对我来说似乎并不好,因为一些属性将完全不相关,并且在EAV模型中,一些简单的查询将变得更加复杂。

我知道这是一般情况,但我真的不知道应该采用哪种方法?如果需要更多信息,请与我们联系。

0 个答案:

没有答案