我遇到了数据库设计问题,数据库对象的属性没有修复。应用程序用户需要随时选择向对象添加属性。
由于这不能在具有固定列数的传统数据库设计中实现,我正在考虑使用键值对设计模式 我正在寻找在c#(。Net)中实现它的方法。
我更喜欢使用Mysql作为后端数据库。
Q1。在mysql数据库中序列化对象和存储的最佳方法是什么? (XML或JSON或Binary?)
Q2。是否有任何键值对数据库引擎,具有强大的.Net绑定?
答案 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就足够了