【问题标题】:How to design period time(business hours) in the SQLServer?如何在 SQLServer 中设计周期时间(营业时间)?
【发布时间】:2019-06-04 08:31:49
【问题描述】:

我有这样一个场景:在我的系统中,有一些食品店的营业时间。商业场景是这样的:

对于我的名为“宠物食品”的食品店,它将在周二至周五上午 11 点至下午 2 点营业。

我想知道如何更好地存储这些营业时间。

我使用 Sql Server 数据库和 Entity Framework 核心。

我发现有些人建议在 Sql Server 中使用 xml 数据类型作为营业时间。如果这样做,如何使用实体框架核心查询营业时间以及如何在html上显示。

我想在网络上显示营业时间。当有人进入这家网上商店时,如果他添加访问预订,他将访问这家商店。然后系统会检查他的预约时间是否有效

【问题讨论】:

  • 创建一个日历表,其中包含每天的开始和结束营业时间。然后,您可以使用自定义 SQL 函数或视图来正确查询它。
  • 这在查询数据的时候会很麻烦,想知道这种情况有没有好的解决办法
  • 尝试添加一些您计划如何使用这些时间的示例,这将有助于更好地了解您的要求。
  • 我已经编辑了问题

标签: sql sql-server entity-framework entity-framework-core


【解决方案1】:

您可能希望使用实体框架的“值对象”功能。

这允许您拥有 SQL 表示,例如一周中的第 1 - 7 天的数字,以及作为开放时间的 SQL TIME 和作为关闭时间的 SQL TIME 组合成一个表示开放时间的对象。

https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/microservice-ddd-cqrs-patterns/implement-value-objects#important-characteristics-of-value-objects

【讨论】:

  • 我的营业时间是这样的:
  • 我的营业时间是这样的:1号店:营业时间:周一到周四,凌晨2点到13点2号店:营业时间:周三到周五,11点:上午 00 点至下午 13 点(节假日除外)等。你的意思是为营业时间设置一张桌子吗?并使用“值对象”将它们组合在代码中的一个字段中?
  • 我想我的意思是值对象使您能够在 SQL Server 中拥有最佳架构,同时在 c# 中仍然拥有易于使用的对象。也许分享您的 SQL Schema 已有的内容,以便人们发表评论。
猜你喜欢
  • 2011-11-08
  • 2020-11-18
  • 1970-01-01
  • 2013-05-28
  • 2017-11-27
  • 1970-01-01
  • 2012-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多