【问题标题】:How can I store resource available by date (year/month/day/our) in database?如何在数据库中按日期(年/月/日/我们)存储可用资源?
【发布时间】:2013-06-19 16:30:05
【问题描述】:

我有一个管理资源(代理)的程序。在该程序中,有一个功能可以从日历中选择一个日期(例如:08/11/2013 上午 5 点)并在选定的时间返回可用资源的数量。如何将一年中每一天的资源状态有效地存储在关系数据库中?

资源状态只是一个字符串:“可访问”或“忙碌”。

您对此有什么想法或策略吗?

感谢您的帮助!

【问题讨论】:

  • 我建议使用表格和数据。它们对于存储和检索事物的状态和值非常有价值。你试过什么?

标签: database date relational-database store


【解决方案1】:

存储有效日期(/时间)范围的最佳方式是日期(/时间)范围。换句话说,存储具有有效日期/时间和到期日期时间的记录。

不要试图将时间分成块,每个块都有记录。这是不灵活的,并且会大大增加您的数据维护负担。

因此,对于您的情况,如果您想知道代理何时可用,请使用类似这样的记录结构:

  • 代理_ID
  • Effective_Datetime
  • Expiry_Datetime

请注意,您不需要状态(“可访问”与“忙碌”),因为代理必须在表中才能访问。假定如果没有在特定时间点有效的代理记录,则它们一定是不可访问的。

如果您想知道哪些代理在 08/11/2013 05:00 可用,那么只需使用包含以下内容的 WHERE 子句进行查询:WHERE Effective_Datetime <= '2013-08-11 05:00' and Expiry_Datetime >= '2013-08-11 05:00'

【讨论】:

  • 非常感谢!这是非常有帮助的想法! :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 2017-10-01
  • 2012-09-20
  • 1970-01-01
  • 2012-02-03
相关资源
最近更新 更多