我仍然开始了解整个关系数据库 thingymawhatsit。不管怎样,我是一名 PHP 程序员,所以我可以完成所有这些工作。我只需要考虑什么是这种情况的最佳方法...
我正在开发一个网站(使用 CodeIgniter,如果有帮助的话)- 一个用户可以发布内容的网站(想想博客风格的东西)。每个帖子都必须有标签,任何数量的标签,我不能只限于 3 或 5 个。这必须是无限制的。
那么我应该做哪些呢?
- 将标签放在同一个数据库表中的帖子旁边,即“entries”包含“post”、“title”和“tags”(显然还有“id”)
- 将标签放在它们自己的表格中,并将每个标签行链接到条目“id”...?
- ...完全是别的东西?
只需要知道执行此操作的最佳、最合乎逻辑的结构方式。考虑相互通信的表已经够令人困惑了...!
哦,对于任何拥有任何 CodeIgniter 代码片段的人来说,奖励积分可能会让我一路走来;)
谢谢!
jack
最佳答案
基本上,您需要标签和帖子之间的 n-m 关系:
- 每个帖子可以有多个标签
- 每个标签可以对应多个帖子。
使用关系数据库,这是通过三个表完成的:
- 一个“post”表,每篇文章一行
- 一个“标签”表,每个标签一行
- 和一个“post_tag”表,其中包含标签和帖子之间的每个对应行——这意味着每个标签有几行;每个帖子几行
在您的数据库中,您将拥有这三个表:
- 发布
- 编号
- 标题
- 内容
- ...
- post_tag
id_post => 帖子的外键
id_tag => 标签的外键
- 标签
- 编号
- 姓名
关于php - 从逻辑上考虑数据库结构 : Adding 'tags' to things users post - A seperate table or. ..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2307150/