首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要关于标签表设计的建议

需要关于标签表设计的建议
EN

Database Administration用户
提问于 2012-05-25 12:29:10
回答 1查看 3.1K关注 0票数 5

我的网站有不同的内容类型。所有内容类型都应该是可标记的(除非在模型中指定)。我可以为我的设计想出两种选择:

2 table选项:标记(+另一个表,其i18n内容)的表1和关联表(content_type、content_id、tag_id)的表。

优点:

  • 创造更快
  • 标记的模型部件是相同的(如此继承的模型)
  • 控制者也是一样的。

潜在公民:

  • 表演会很差吗?
  • 这张桌子会很快变大吗?
  • 如何查询标签云(与所有分组内容相关)?

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

优点:

  • 桌子会更短

缺点:

  • 必须自定义每个模型或编写逻辑/内存空间以查询正确的表
  • 丑陋的长请求/ php代码来连接所有内容类型的标记

其他事实:

  • 前端将有缓存,标签由内容作者设置。
  • 有10种内容类型。
  • 不会经常出现新类型的内容。
  • 内容计数为500,3年后将翻一番。
  • MySQL engine InnoDB.
  • 是用一种框架建造的。
  • 将查询定义的内容类型的标记。
  • 将查询任何类型的内容的标记(例如,一个大标记云)。

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

EN

回答 1

Database Administration用户

回答已采纳

发布于 2012-05-25 15:25:58

我赞成备选案文1(两个表)。

如果您只计划拥有1000个内容项(3年后,现在没有),我不认为您会有很多性能问题,除非每个内容项都有十几个标记,其中大多数是该项特有的标记。即使那样,我也不认为你会看到太多的性能问题。如果每个内容类型都有一个标记表,然后决定在以后添加/删除/更改内容类型,它还简化了您的结构。

如果您真的不确定,您是否有时间/资源来构建两个示例do,一个基于每个结构,用您认为实际的负载填充它们(您可以编写一个脚本/程序来生成和插入测试数据,对吗?使用“无聊”标签和内容,如"content_1..content_2000和tag_1.tag_5000“和实际测试,哪个性能更好?

票数 5
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/18398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档