如何将每个用户的许多自定义表映射到真正的数据库?

时间:2015-05-01 18:03:23

标签: database-design

有一个Web应用程序假设每个用户都有多个自定义表。作为带有类型列的表(数字,短文本,文件或对另一个表行的引用)呈现。像轻量级的Excel,但有类型的列。

将数据存储在真实数据库中的最佳方法是什么?

一种可能的解决方案:创建一个包含字段Int1,Int2 .. Int32,String1,String2 .. String32等的巨型表,假设永远不会有一个包含超过32列相同类型的表。所有用户数据都将放在表格中,表格本身将存储在“表格”表中。

我所有的工程师的胆量都反对这种做法,因为它感觉不到'纯粹'。用户从未听说过“规范化”,如果他们将数据保存在表中,那么每次使用另一个字典表时,倾向于添加另一列。因此,每种类型限制32列可能对他们来说太难了。另一方面,大多数列都是空的,因为典型的简单表总共不会超过5-10列。

另一个解决方案:只需将真实数据库与虚拟数据库保持一致,每次用户为她的目的创建表时,在真实数据库中执行相同操作。它最终将在数据库中的数千个表中结束,这不是典型情况,因此可能会降低性能。

也许,noSQL就是答案?

0 个答案:

没有答案