【发布时间】:2013-01-25 17:04:27
【问题描述】:
您好,我是编程方面的新手,尤其是数据库设计方面的新手。 我刚刚开始使用数据库,我想知道其中哪一种设计给了我更好的性能并且更合理。 我已经建立了预订酒店表这样的:
为每个 Resevation 设置 DateIn 和 DateOut
为每个房间/天设置标志
假设我们最多有 100 个房间,所以如果我想为第二张图片生成表格(50 年)大约需要 15MB((100(房间)*8(位)+3(日期))*365(天) *50(年))的容量,但我认为当我想查询时,它会给我更好的性能。 第一张图片的查询更复杂,我认为性能较差 如果您给我理由或更好的方法,我将不胜感激。 提前致谢
【问题讨论】:
-
不要使用重复的数据集。房间号不应该是它自己的列。顶级套装看起来是您的最佳选择。
-
哦,您的空间计算(可能)是错误的 - 据我了解,在 SQL Server 上,它会自动将位列压缩在一起(成一个字节值)。尽管如此,我还是支持@njk - 我更喜欢第一个选项,尽管我会重命名您的日期列。
arrivesOn和departsBefore是我的首选。
标签: sql sql-server sql-server-2008 sqlite tsql