Database design 如何在数据库中存储开放的工作日

Database design 如何在数据库中存储开放的工作日,database-design,Database Design,我有一组复选框,用户在其中选择一些工作日(商店的营业日)。如何保存所选日期?我是否应该在同一字段上保存011111(零表示周日关闭)之类的内容,并在读取数据时分割结果?或者为每天创建一个字段,并在每个字段上存储0或1(奇怪)?这完全取决于一旦有了这些数据,您将如何处理它们。总的来说,如果这七个factoid(存储为opn的工作日)是一个事实,将被视为一个事实,并且您永远不需要解析并单独处理字符串中的一个“factoid”,那么它可以并且可能应该作为一段数据存储 但是,如果你必须把这个信息看作七个

我有一组复选框,用户在其中选择一些工作日(商店的营业日)。如何保存所选日期?我是否应该在同一字段上保存011111(零表示周日关闭)之类的内容,并在读取数据时分割结果?或者为每天创建一个字段,并在每个字段上存储0或1(奇怪)?

这完全取决于一旦有了这些数据,您将如何处理它们。总的来说,如果这七个factoid(存储为opn的工作日)是一个事实,将被视为一个事实,并且您永远不需要解析并单独处理字符串中的一个“factoid”,那么它可以并且可能应该作为一段数据存储

<>但是,如果你必须把这个信息看作七个不同的数据,你最好把它记录为七个不同的数据段(即七个不同的列)。
同样,这背后有很多“视情况而定”。另一种思考方法是,展望您将如何使用数据,并尝试构建您的存储以简化您的流程(即,您是否希望始终解析所需元素的字符串“1010101”)

第一种方法节省空间,第二种方法在检索数据时提高性能,特别是如果您需要按单个工作日进行筛选。它还使处理工作日的查询更加清晰。您必须根据应用程序的逻辑来决定什么对您更重要


一般来说,我会使用每日字段解决方案。

您将如何处理与假期相关的关闭?这不是问题。这些商店一年只关门两三天(圣诞节、复活节)。我需要存储开放日/周和开放时间/日我也喜欢第二种解决方案-对于第一种解决方案,除了星期日(第一个字符),您永远无法使用索引检索任何特定日期开放的存储,因此需要扫描表。如果是一张小桌子,没什么大不了的,但效率还是不高。因为一周中的天数不会改变,所以我选择一个字段/天。“检索除星期日以外任何特定日期都营业的商店”。说得好。我会选择field/day选项。谢谢大家。