.Net中的键值对数据库

时间:2009-08-20 09:34:58

标签: .net database key-value

我遇到了数据库设计问题,数据库对象的属性没有修复。应用程序用户需要随时选择向对象添加属性。

由于这不能在具有固定列数的传统数据库设计中实现,我正在考虑使用键值对设计模式 我正在寻找在c#(。Net)中实现它的方法。

我更喜欢使用Mysql作为后端数据库。

Q1。在mysql数据库中序列化对象和存储的最佳方法是什么? (XML或JSON或Binary?)

Q2。是否有任何键值对数据库引擎,具有强大的.Net绑定?

5 个答案:

答案 0 :(得分:1)

如果您不需要查询/报告这些属性,我建议保存为XML,使用某种松散耦合来序列化对象,如果添加或删除属性,则不会出现错误。在提供内容时,您的应用程序可以处理JSON。

如果你确实需要查询/报告其他数据库字段,我建议你想出一些可以存储数据的数据库模式。

答案 1 :(得分:1)

序列化将为您的应用程序增加性能开销,但如果您这样做,那么我会使用二进制序列化,因为它是最快的。请查看protobuf-net序列化。

答案 2 :(得分:0)

据我所知,MySQL支持XML字段。我不确定它是否可以为它们编制索引。

只需使用XmlSerializer将对象序列化为xml,然后查看MySQL xml functions

答案 3 :(得分:0)

回答Q2:

Apache CouchDB存储JSON。

以下是C#的入门指南:http://wiki.apache.org/couchdb/Getting_started_with_C%23

数据库有一个RESTful接口,可以很容易地使用任何语言。

答案 4 :(得分:0)

您确定需要关系数据库吗?根据我的需要,db4objects就足够了