想象一下,一个可以处理随时间变化的数据的系统。例如,今天你的User对象包含Name:String和Email:String,但是明天你需要添加Age:Integer和Address,它由国家,邮政编码等组成。然后你可能想创建新的字段User.Contacts并将电子邮件和地址移动到该字段,如重构。 它应该在运行时完成,无需编码和重新部署,因为它将由客户或管理员完成,而不是由开发人员完成。使用变量结构的数据
你会考虑存储这些数据的方法和工具吗?它是每个对象类别的单独表格,每次更改结构时都会改变表格,或者是对象与其属性值之间的一对多关系(如具有字段ObjectID,PropertyID,StringValue的表格StringProperties);或所有对象的一个大表(具有通用字段StringField1,NumericField2等)
如何编制索引工作?
你会考虑使用像CouchDB这样的主流工具吗?还有其他工具我应该知道吗?
是否有任何具有类似想法的应用程序示例 - 允许用户定义和扩充自己的数据结构?
编辑:我不指望任何人解决我的整个设计问题。粗糙的想法或链接到像CouchDB或Prevayler这样的工具是非常值得欢迎的。任何文章链接也欢迎。
我正在考虑哈希和列表来存储数据在运行时确定,但它需要永久保存。 – 2009-01-21 22:25:45
Prevayler看起来很有趣,谢谢。 – 2009-01-21 22:56:00