【发布时间】:2016-04-24 10:51:21
【问题描述】:
我目前正在开发一个将厨师信息存储在用户表中的 Web 应用程序。我们有一个功能可以从我们的 Web 应用程序中搜索厨师。如果厨师在 2016 年 5 月 3 日不可用,我们希望在用户执行 2016 年 5 月 3 日的搜索时显示该厨师的 Not-Bookable 或 Not-Available 消息。我们想出的解决方案是创建一个名为 CooksAvailability 的表,包含以下字段
ID, //Primary key, auto increment
IDCook, //foreign key to user's table
Date, //date he is available on
AvailableForBreakFast, //bool field
AvailableForLunch, //bool field
AvailableForDinner, //book field
BreakFastCookingPrice, //decimal nullable
LunchCookingPrice, //decimal nullable
DinnerCookingPrice //decimal nullable
使用此架构,我们能够判断用户是否在特定日期有空。但是这种方法的问题在于它需要大量的数据库空间,即如果一个厨师每年有 280 天可用,则必须有 280 行才能反映一个厨师的可用性。
考虑到我们可能有数千名厨师在我们的应用程序中注册,这实在是太大了。如您所见,早餐、午餐和晚餐的 CookingPrice 字段。这意味着厨师可以针对不同日期和时间的烹饪收取不同的烹饪费用。
目前,我们正在寻找一种智能解决方案,既能满足我们的要求,又能比我们的解决方案占用更少的空间。
【问题讨论】:
-
多少空间是太多空间?
标签: sql-server database-design relational-database