mysql - 用于实现灵活的动态数据存储的最佳关系数据库模式是什么?

标签 mysql content-management-system database-schema

我正在构建一个具有“条目”的 CMS(是的,是的,我知道,但我喜欢它,好吗?:-))。这些条目具有固定数量的标准字段,可以在数据库中捕获 - ID、标题、创建日期等。所有标准内容。

但是,我还希望条目有 X 数量的“自定义字段”与之关联。这些自定义字段将是用户定义的,并且可以定义标题、描述、格式、最大长度和其他属性。现在显然我可以很容易地将这些字段的定义存储在数据库表中,但是存储和匹配与这些自定义字段对应的每个条目的数据的最佳方法是什么?

ExpressionEngine 基本上做同样的事情,并使用一个条目表,其中为每个自定义字段动态添加列。但我不敢相信这是解决这个问题的最佳方法。

有没有更好的方法来构建关系数据库来处理这种灵活的数据模型?

最佳答案

这基本上是 EAV(精简版):

http://en.wikipedia.org/wiki/Entity-attribute-value_model

我从字面上问了同样的问题(关于类似的话题):

Flexible forms and supporting database structure

关于mysql - 用于实现灵活的动态数据存储的最佳关系数据库模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5165607/

相关文章:

php - 使用 PHP 和 MySQL self 发布的动态单选按钮

mysql - 一些键在 Mac 版 MySQL Workbench 上无法正常工作

php - 此用例的 View 或有机组

database-design - 如何为具有多语言支持的内容管理系统 (cms) 设计数据库架构?

SQLite 创建预填充的 FTS 表

mysqld --defaults-file 和 tmpdir 问题

php - 一个空行被插入到数据库中

content-management-system - Grav CMS 页面名称

postgresql - Activiti BPM 平台 - 选择一个特定的模式来创建表?

MySQL 错误 1064 - MySQL Workbench