首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内容管理系统的数据库设计

内容管理系统的数据库设计
EN

Stack Overflow用户
提问于 2015-07-11 23:50:55
回答 1查看 539关注 0票数 1

在设计内容管理系统时,我希望一个特定的表包含某些数据,这些数据将显示在多个页面(但不是所有页面)中。

处理这种情况的最佳方法是什么?

表格

  • 页面
    • pageID -主键自动
    • 分页名varchar 50
    • 页名varchar 50
    • mainimageURL varchar 200

  • 主题
    • themeID -主键自动
    • 名称- varchar 50
    • imageURL - varchar
    • 主题定位-页面of数组。

主题表将包含一个主题列表,每个主题将显示在上面列表中的特定页面中,但不一定全部显示。

样本表

页面

pageID -页面名-页面标题-主映像

1-儿童-儿童派对-一些形象

2-企业-企业活动-一些形象

3-成人-成人派对-一些形象

主题

themeID -名称-主机-链接图像-定位2匹萨imageURL - imageURL 1,3

3小人imageURL - imageURK 1,2,3

4彩虹imageURL - imageURL 1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-12 00:03:24

如果每个页面包含多个主题,并且每个主题可能出现在多个页面中,那么您将讨论多到多(或n:m)的关系。

这通常通过引入包含链接的第三个表(通常称为https://en.wikipedia.org/wiki/Junction_table或交叉链接表)来解决。

因此,您将创建一个名为PageThemes的表,该表列出页面的所有主题。这个表包含一个页面ID和一个主题ID。虽然每个页面ID可以被多次引用,每个主题ID也可以被引用,但是这两个字段的组合可以是唯一的,因为表中的每一行代表一个页面和一个主题之间的一个链接,而将同一个主题链接两次是没有意义的。

此表替换themeLocations中以逗号分隔的页in列表。

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

https://stackoverflow.com/questions/31362996

复制
相关文章

相似问题

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