我正在设计一个ASP.NET MVC 2应用程序。目前我正在利用Entity Framework 4和可切换的SQLServer和MySQL数据存储。灵活的持久层
最近要求应用程序要求用户定义的模型/实体被操纵。现在我不确定SQL /关系数据库是否合适。例如,用户应该能够定义一个'Employee'以及它具有的属性 - 在运行时有效地添加/删除表和列,而不是添加/删除'Employee'对象。
SQL是否不适合这个?是否有选项允许我保留在关系数据库结构中并仍然满足此要求?在实体框架中,我可以“即时”重新生成.edmx文件,还是有可以实现类似目标的替代方案?
我简单地看了一下其他选项,如'基于文档'dbs和'无模式/无sql'数据库,如MongoDb。我还研究过一些序列化格式,例如Google的Protocol Buffers,JSON和XML。根据你的经验,这些特别适合于这个目的吗?序列化性能不是一个大问题。
该应用程序处于起步阶段,我没有时间限制。从本质上讲,我可以随心所欲地重写它,所以如果报废并重新开始是一个更好的选择,我对此非常开放。你有什么建议?提前致谢!
SQL允许您通过ALTER TABLE命令添加和删除列,但目标受众的技能组是多少?我问,因为我害怕人们定义他们的数据模型的想法。多数人对参照完整性或标准化一无所知 - 一直认为Excel电子表格。曾见过在Access中设计的数据模型? – 2010-09-01 04:39:00