1

基本上,下图代表了我正在处理的网站主页上的组件,其中到处都有新闻组件。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:我的特色文章和主要文章的工作方式仅在最新日期之前。例如,如果用户想要以某种原因指定一篇较旧的文章作为主要文章,我应该创建自定义逻辑,还是只是告诉他们更新文章日期以使其晚于最新文章?

4

1 回答 1

1

关于标题中的问题,剥猫皮的方法肯定不止一种。适合一个站点的可能不适合另一个站点。影响您决策的一些因素是网站需要扩展多大(例如,会有数十篇文章还是数百万篇文章?)以及谁将输入数据(例如,您需要建立多少防白痴性在)。我会根据您提供的信息尽力回答问题。

问题#1:是的,我觉得很好。请务必设置您的索引(我会将索引放在 [type,date] 和 [category,type,date] 上)。

问题#1.1:是的,我会说没关系,事实上,我会说这是首选。如果我正确理解了这个问题(这与每个“类型”的表格相反),那么如果您愿意,这可以让您更好地在未来添加新类型。

问题#1.2:如果您只希望每个故事一个图像,每个图像一个故事,我看不到将其拆分为额外表格的优势。似乎它只是更多的开销。但我可能会在这里遗漏一些东西。

问题#1.3:这取决于你的设计决定,这里没有“正确”的答案。这完全取决于您对系统的预期用途。

于 2010-02-05T21:59:11.210 回答