您如何处理需要持久保存的一次性数据?

时间:2009-04-03 17:22:56

标签: persist

最近,我被要求为网站管理员添加一些内容,以便他可以“展示”某些内容。

对于这个讨论,让我们说这是一篇“特色文章”。

很自然地,我们已经有了一个'文章'的数据库模型,它有大约20列,所以我真的不觉得它比它已经膨胀了。

我的选择:

  1. 搞定'特色'bool(或int)并意识到在任何给定时间只会出现一件事

  2. 创建一个新模型来保存此模型以及可能弹出的任何其他功能蠕变项。

  3. 我接受你的建议! ;)

  4. 在这个例子中你做了什么?我时不时地遇到这个问题,我只是讨厌不得不再添加一个专栏。这些信息需要坚持下去。

5 个答案:

答案 0 :(得分:3)

我可能只是添加一个简单的双列表,它基本上是一个键值存储。然后添加一个新列,其值为(featured_article_id, 45)或第一个特色ID。

编辑:正如rmeador的评论所指出的那样,应该注意的是,只要事情保持相对简单,这只是一个很好的解决方案。如果您需要存储更复杂的数据,请考虑找出更灵活的解决方案。

答案 1 :(得分:2)

如果一次只能展示一篇文章,那么添加bool色谱柱就是一种浪费。您应该上升一个级别并为FeaturedArticleID添加一列。你有Site_Settings表吗?

答案 2 :(得分:0)

您可以使用可扩展模型(如拥有属性表),然后使用链接表在文章和属性之间形成多对多关系。这样,这些功能不需要修改架构。

答案 3 :(得分:0)

有一些带有parameter_name和parameter_value列的global_settings表。在这里放置精选文章ID。

答案 4 :(得分:0)

对于像这样的快速和肮脏的东西,我喜欢包含某种设置表:

CREATE TABLE Settings (
    SettingName NVARCHAR(250) NOT NULL,
    SettingValue NVARCHAR(250)
)

如果您需要按用户或按客户设置而不是全局设置,则可以添加一列以向该特定用户/客户标识该设置。然后,您可以为“FeaturedArticle”添加一行,并从字符串中解析ID。它不是超级优化的,但明文非常灵活,听起来就像你需要的那样。