基本上,下图代表了我正在处理的网站主页上的组件,其中到处都有新闻组件。sql 片段设想了我认为它们应该如何工作,但我非常感谢以前与新闻网站合作过的人提供的一些业务逻辑建议。这是我的设想:
问题 #1:sql 逻辑是否有意义?您可以看到任何警告/缺陷吗?
我的架构将类似于:
articles:
article_id int unsigned not null primary key,
article_permalink varchar(100),
article_name varchar(100),
article_snippet text,
article_full text
article_type tinyint(3) default 1
我会将所有文章(主要特色,次要特色,其余)存储在一个表中,我将按type
列对它们进行分类,这将对应于我news_types
表中的一个数字(例如,我使用文字文本,因为它更容易理解)。
问题#1.1:不同类型的文章依赖一个表可以吗?
一篇新闻文章可以有 3 种图像类型:
- 1x 原始图像大小,仅显示在文章的永久链接页面上
- 1x 主要特色图片,将显示在首页部分 #1
- 1x 子特色图片,将显示在首页部分 #2
现在我希望每篇文章对应一个图像而不是多个图像。article_full
不过,用户可以在 TEXT 列中发布文章的图像。
问题#1.2:我不确定应该如何将文章图像合并到我的架构中,依赖于这样的 2 个表的架构是否常见?
文章图片链接:
article_id article_image_id
1 1
文章图片:
article_image_id article_image_url
1 media.site.com/articles/blah.jpg
资料要求:
从我的 sql 逻辑的方式来看,必须有一些数据才能显示出来。
- 必须至少有一种
main
类型的文章 - 必须至少有四种
featured
类型的文章在主要文章之下
问题 #1.3:如果数据丢失,我是否应该费心创建特殊情况?例如,如果没有主要专题文章,我应该选择最新的专题文章,还是应该要求有人总是指定主要文章?
问题#1.4:在管理员中,当用户发帖时,默认情况下,我将有一个指定文章类型的下拉菜单,normal
将被预先选择,并且它将具有 和 的main
选项featured
。因此,如果用户在某一时刻决定更改文章类型,他/她可以这样做。
问题 #1.5:我的特色文章和主要文章的工作方式仅在最新日期之前。例如,如果用户想要以某种原因指定一篇较旧的文章作为主要文章,我应该创建自定义逻辑,还是只是告诉他们更新文章日期以使其晚于最新文章?