我想在我的数据库记录中有动态字段.
例如:我想为用户构建一个应用程序来创建自己的表单.
用户可以创建以下表单:
个人资料:
>全名
>街
>工作
>电话
>家
>工作
>移动
>兴趣
>兴趣1
>兴趣2
>兴趣3
工作:
>名字
>姓氏
>工作
>部门
>专业1
>专业2
>部门
>专业1
>专业2
国家:
>美国
>国家
>纽约
>城市
>纽约
> Foo
>阿拉巴马州
>城市
>吧
>巴兹
正如您所看到的,这是一个非常动态的结构:
>没有预定义的字段数
>没有预定义的字段名称
>用户创建数据库的结构
所以我想知道,最好的数据库是什么:关系(mysql / postgresql)或非关系类似mongodb / couchdb / cassandra甚至像xindice这样的xml数据库?
即使我为此选择非关系数据库,将安全关键信息存储在客户和计费信息中是否明智?
我听过有人说如果你的信息需要唯一性,那么就使用关系数据库. “我们不想冒两次向客户收费的风险”.他们实际上意味着非关系型数据库存在哪些问题?你不能在非关系数据库中存储唯一数据吗?
我想到的另一件事:不会在非关系型数据库中保存数据意味着我会有重复的条目吗?
考虑这个例子:
分类:
>办公室
>应用程序
> Textmate
>作者:Foobar
>价格:120
> Foo
>作者:Foobar
>价格:120
>办公室
>应用程序
> Textmate
>作者:Foobar
>价格:120
>吧
>作者:Foobar
>价格:120
如您所见,存在相同条目的情况.非关系数据库如何处理这些?我习惯了关系数据库.
我总结了一下我的问题:
>用户创建的数据库结构的数据库类型是什么?
>用于存储安全关键信息的非实际数据库是什么?
>非实际数据库如何处理重复?