我的任务是重构一个目前使用EAV model进行数据存储的项目。
在某些实现中,主表包含数百万行。你可以想象,我认为这是令人厌恶的。
重构是由需要进行空间搜索驱动的,当你的lat和long在VARCHAR字段中以逗号分隔的文本存储时,这种搜索并不真正有用......但我离题了。
项目的性质意味着提前生成一组静态规范化表是不可能的。可以把它想象成一种动态表单构建器,其中新表单中的字段数量未知,下拉列表的选项数量未知等等。
我想要创造一个" DynamicTable" class,它将维护字段字典,并管理动态创建的表集。缓存已经很好地实现了(使用memcached),因此只需要在更改模式(初始提交后很少见)和重新启动时(甚至更罕见)查询字典。
我最初尝试充实甚至基本的东西让我意识到我想做的事情的全部规模,而我对类似项目的搜索却毫无结果。
任何人都可以:
干杯!
答案 0 :(得分:1)
然后回答我自己的问题。
接受Charles的建议我调查了几个NoSQL Document DB选项,最终决定使用MongoDB。
它非常适合我想要存储的数据类型,因此非常容易使用。