0

这是一个关于如何执行从网页存储数据的最佳实践的问题。像文本/图像网址/链接等。

我有一个CMS,你可以创建网页。在这里您可以编辑文本/上传图像。将来“添加新元素”、添加指向 a-tags 的链接等也会很好。

我需要一个强大而灵活的解决方案,同时也具有良好的性能。在获取/接收此数据时。

让我们考虑一下我有 1000 个页面,每个页面上大约有 25 个元素可以更新并存储在数据库中。

备选方案 1)

为这些页面上的每个元素创建一个表和 1 列,例如以下列:title_1、title_2、image_1、image_2。

在这里,我们有一组可以更新的列,我们可以在网页上使用这些列。

备选方案 2)

使用列(id、命名空间、page_id、数据)创建 1 个表

对于页面上的每个元素,我添加与 page_id 关联的命名空间,以使数据输出唯一。在数据中我可以添加任何类型的信息;文字、链接等

您对这个问题有什么好的解决方案建议?我当然也愿意接受其他选择。

谢谢!

4

1 回答 1

0

我会推荐选项二,添加一个标识元素 id/或类型的列,如果确实元素 id 在某种程度上是可比的。也就是说,如果锚文本 (say) 始终存储为元素 id = 4,那么您可能需要一个元素 id = 4,以便您可以跨多个文档比较锚文本。

另一方面,如果(这是我认为更有可能的情况),您可能在页面上有 1-25 个元素,并且每个元素都可能不同(例如,文档一具有三个锚文本和四个图像,文档二有一个锚文本,没有图像等)添加一个 element_type_id 表来存储有关元素类型的一些信息是有意义的。这是假设您对比较(例如)多个文档中的图像或多个文档中的锚文本等有任何兴趣。

要考虑的另一件事:如果您可能一遍又一遍地看到相同的元素,那么通过查找表有效地参数化这些元素实际上更有意义。所以基本上将每个(比如说)唯一的锚文本存储在一个表中,并在您的实际数据表中引用它的 id。

如果我可以添加一件事:SO 可能不是您提出的特定问题的最佳位置。我不完全确定这一点,也许我错了......但我会在 Stack Exchange 网络上闲逛,看看其他论坛是否更密切地处理你提出的问题类型。至少,我观察到您的问题相当模糊,目标是实现“强大而灵活的解决方案,同时{具有}良好的性能。在获取/接收这些数据方面。” 不可能仅仅通过征求关于 SO 的建议来完成。有很多这涉及到数据架构,当然我认为在自己设计时很重要的许多细节都没有出现在您的问题中。如果您不确定这些细节是什么,我不确定 SO 是否真的是开始学习它们的最佳场所。我认为https://softwareengineering.stackexchange.com/可能更适合这个问题。

只是我的看法,我可能是错的。无论哪种方式,我都会考虑学习一些关于数据库范式的知识(http://www.bkent.net/Doc/simple5.htm或谷歌它)以及对进入建筑的设计考虑类型进行一些研究一个数据库(这里有一篇旧但仍然很好的 SO 文章:设计数据库时最重要的考虑因素是什么?

于 2014-07-12T01:22:48.353 回答