我正在用PHP编写CMS,允许用户定义不同的字段(例如,博客页面可以包含标题(字符串),内容(富文本),图片(文件))字段。我需要用户能够动态添加和删除字段,而我能想到用关系数据库执行此操作的唯一方法是序列化所有这些值并将它们存储在一个单元格中。
这似乎是一种缓慢的方法,就像我试图在静态结构中拟合动态一样。有人可以推荐任何兼容PHP的东西,这会让这更容易吗?
答案 0 :(得分:4)
一个答案是document-oriented databases,例如CouchDB。
另一个答案是没有预先定义的数据库,而是动态创建它以响应用户的意愿。
在关系数据库中,第三种可能性是拥有一个看起来像(id, name, value)
的表,以便在此表中将n列行写为n行。虽然它不是太漂亮。然后很容易找到任何具体的值,但如果你想要它们,你将需要一个n倍的定制连接:)