【问题标题】:Database Design about Date/Time Column关于日期/时间列的数据库设计
【发布时间】:2011-09-30 10:59:47
【问题描述】:

简要说明:

我有一个存储文章的表。文章在表格中列出并按创建日期 - DESC - 排序。

dateCreated 列表示用户发布/创建文章的日期和时间。它是固定的,不能更改。

问题:

如今,旧文章通常会出现在远页中。然而,用户有机会将他的文章撞回到第一页的表格顶部。由于我是按 dateCreated 排序文章,不能更改,如何在不更改 dateCreated 的情况下更改文章?

我的解决方案 - 我不确定它是否好(我需要建议):

创建另一个名为bumpDate 的列。当用户发布文章时,日期/时间将被插入到 dateCreated 和 bumpDate。 gridview 上的文章会按照bumpDate 排序。当用户碰撞他的文章时,我只更新碰撞日期。因此,无论创建日期如何,用户的文章都会在最前面。渐渐地,文章将根据其他用户发布的新文章的数量而下降。

您认为此设计/解决方案有什么问题吗?

【问题讨论】:

    标签: database database-design rdbms


    【解决方案1】:

    您所概述的是这些事情通常是如何完成的。虽然BumpDate 可能不是最好的名称(这是否真正代表了“碰撞”的行为,还是他们做了其他类似修改之类的事情?),但这就是您应该使用的名称。

    【讨论】:

    • 好!谢谢......我想在继续之前确认......是的,我的意思是修改文章,而不是修改它。
    【解决方案2】:

    我认为您的提议没有任何实际问题,如果您要拥有大量数据,唯一可能的做法是尝试使用 INT 值而不是 DateTime(4 字节对 8 字节) ,否则我会按照你的提议做。

    【讨论】:

    • CURRENT_TIMESTAMP 的值将始终大于每个较早的时间戳。但是您不知道“当前”整数应该是什么,因此您每次都必须查找它。如果您有 大量 数据,这可能是个问题。
    猜你喜欢
    • 2019-11-13
    • 1970-01-01
    • 2015-10-31
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 2011-01-02
    相关资源
    最近更新 更多