我有一个数据库设计问题,其中数据库对象的属性不是固定的。并且应用程序用户需要在任何时候都可以选择向对象添加属性。
由于这不能在传统的固定列数的数据库设计中实现,所以我正在考虑使用键值对设计模式,并在c#(.Net)中寻找实现它的方法。
我更喜欢使用Mysql作为后端数据库。
Q1.序列化对象并存储在mysql数据库中的最佳方法是什么?( XML、JSON或二进制?)
Q2.是否有具有健壮.Net绑定的密钥值对数据库引擎?
发布于 2009-08-20 09:51:48
序列化会给您的应用程序增加性能开销,但是如果您这么做的话,我会使用二进制序列化,因为它是最快的。查看用于序列化的原状网。
发布于 2009-08-20 09:49:42
如果您不需要查询/报告这些属性,我建议将其保存为XML,使用某种松散耦合序列化对象,如果添加或删除属性时不会出错。当提供内容时,JSON可以由应用程序处理。
如果确实需要使用其他数据库字段进行查询/报告,我建议提出某种可以存储数据的数据库模式。
发布于 2009-08-20 09:47:25
据我所知,MySQL支持XML字段。不过,我不确定它是否能给它们索引。
只需使用XmlSerializer将对象序列化为xml,然后查看MySQL xml函数。
https://stackoverflow.com/questions/1305040
复制相似问题