我的网站有不同的内容类型。所有内容类型都应该是可标记的(除非在模型中指定,无论如何)。我可以为我的设计想到 2 个选项:
2 个表选项:1 个标签表(+另一个,其 i18n 内容)加上 1 个关联表(content_type、content_id、tag_id)。
优点:
- 创建速度更快
- 标签的模型部分是相同的(所以继承模型)
- 控制器也是一样。
潜在的缺点:
- 性能会差吗?
- 桌子很快会太大吗?
- 如何查询标签云(与所有分组内容相关)?
许多表格选项:1 个标签表格,每种内容类型的关联表格。
优点:
缺点:
- 必须自定义每个模型或编写逻辑/足迹来查询正确的表
- 丑陋的长请求/php 代码来加入所有内容类型的标签
附加事实:
- 前端将有缓存,标签由内容编写者设置。
- 有 10 种内容类型。
- 通常不会有新类型的内容。
- 内容数量为 ~500 ,将在 3 年内翻倍。
- MySQL 引擎 InnoDB。
- 使用 yii 框架构建。
- 将查询已定义内容类型的标签
- 将查询任何类型内容的标签(例如,一个大标签云)。
所以我的想法是使用第一个设计(2 个表)。但我不是数据库专家......你会推荐第二种选择吗?为什么 ?