如何在数据库中按日期(年/月/日/我们)存储可用资源?

时间:2013-06-22 18:19:30

标签: database date relational-database store

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

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

不要试图将时间分成几个包含每个记录的块。这是不灵活的,会极大地增加您的数据维护负担。

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

  • AGENT_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'