小编7se*_*seb的帖子

需要有关“标签”表设计的建议

我的网站有不同的内容类型。所有内容类型都应该是可标记的(除非在模型中指定,无论如何)。我可以为我的设计想到 2 个选项:

2 个表选项:1 个标签表(+另一个,其 i18n 内容)加上 1 个关联表(content_type、content_id、tag_id)。

优点:

  • 创建速度更快
  • 标签的模型部分是相同的(所以继承模型)
  • 控制器也是一样。

潜在的缺点:

  • 性能会差吗?
  • 桌子很快会太大吗?
  • 如何查询标签云(与所有分组内容相关)?

许多表格选项:1 个标签表格,每种内容类型的关联表格。

优点:

  • 桌子会更短

缺点:

  • 必须自定义每个模型或编写逻辑/足迹来查询正确的表
  • 丑陋的长请求/php 代码来加入所有内容类型的标签


附加事实:

  • 前端将有缓存,标签由内容编写者设置。
  • 有 10 种内容类型。
  • 通常不会有新类型的内容。
  • 内容数量为 ~500 ,将在 3 年内翻倍。
  • MySQL 引擎 InnoDB。
  • 使用 yii 框架构建。
  • 将查询已定义内容类型的标签
  • 将查询任何类型内容的标签(例如,一个大标签云)。

所以我的想法是使用第一个设计(2 个表)。但我不是数据库专家......你会推荐第二种选择吗?为什么 ?

mysql innodb performance database-design maintenance

4
推荐指数
1
解决办法
2731
查看次数