【发布时间】:2014-07-29 11:50:23
【问题描述】:
我们目前有一个解决方案,即我们越来越需要存储各种非结构化数据。例如,客户有能力定义他们自己的工作流程,他们定义应该捕获什么样的数据(各种类型......有些简单有些复杂)。然后需要存储这些数据,然后将其显示在具有一些修改数据功能的 Web 应用程序上。
到目前为止,工作流都是在内部定义的,因此设计了一个 MS SQL 数据库来满足这些特定的工作流及其数据的需求。然而,现在客户有能力定义工作流,我们需要放松数据库的结构。起初我认为 ms sql 中的键值表可能是一个好主意,但显然我失去了正在捕获的数据的类型,然后需要反序列化网站 (MVC.NET) 中的所有数据。我也在考虑像 raven db 这样的东西,但不确定这是否合适?
所以我的问题是,考虑到用户还必须能够搜索和编辑/显示这些数据,存储这种非结构化数据的最佳方式是什么?
【问题讨论】:
-
也许每个用户都有一个表,以他们的姓名或员工 ID 作为键。该表将按日期、名称和授权详细说明每个项目,然后有一个大字符串字段详细说明他们的项目地图?图像中可能有某种工作流程图,托管在同一台服务器上?
-
@Wolfish 我事先不知道用户,我也希望以后能够添加数据。有点像关系数据库,但没有固定的结构,如果这有意义的话。
-
我投票给mongodb.org,它支持全文搜索、非结构化数据等。现在很多大公司都在使用它,mongodb.org/about/production-deployments。
-
@Murdock 是的,制作一个简单的 winform,要求用户注册他们的姓名和员工编号,然后通过他们的编号附加任何项目。类似于 sproc 的东西,它创建了一个新表,以及它们的详细信息。不知道我的意思是不是明白了,抱歉
-
@Murdock 另外,mongo 相当不错。如果您已经拥有 MS-SQL 的许可证,我会考虑先使用它。
标签: sql sql-server database database-design key-value-store