0

创建一个非常简单的日程安排应用程序

我要求用户告诉我他们在哪一天工作,以及他们在某一天是早上、午餐还是晚上工作

因此,对于给定的用户,她的数据可能是以下矩阵中的一个或所有点

        morning    lunch    evening
mon
tue
wed
thr
fri
sat
sun 

我需要能够快速检索此信息,以便提醒用户该上班了。我会有很多用户。

我不在乎具体的日期或时间。只有离散的第 1 天到第 7 天以及每天的 3 个时段。当然,有许多可能的组合。

我正在考虑如何存储这些信息。而且我想知道位掩码是否合适/可行/“使用这样的方法”?你会如何处理这个问题?

谢谢!

4

4 回答 4

3

虽然位掩码肯定会起作用(使用 7 天 X 3 班 = 21 位),但我对这些事情的经验是它们总是需要修改。也就是说,增加了夜班,或者换班。

鉴于此,我建议在您的应用程序中构建一些灵活性。将位掩码的想法与定义位表示的表结合起来。这样您就可以根据需要重新定义和修改。如果添加班次,只需在定义表中添加一条记录并更新每个员工的掩码即可。

于 2011-11-17T22:41:38.290 回答
1

回答您的第二个问题:除非您有数百万行,否则位掩码不会带来巨大的性能优势(您的瓶颈仍然是网络 I/O)并且可能是过早的优化。也就是说,您将能够将所有用户的选项存储在一个 32 位整数中。

于 2011-11-17T22:42:10.427 回答
1

不要打扰位掩码。现在做一些简单的事情(比如规范化的数据库模式!),如果您开始测量问题,稍后再优化性能。

于 2011-11-17T23:18:08.643 回答
0

如果他们每天只能选择一个选项,您可以将数据打包成 16 位 int 的 14 位。或者,如果他们每天可以选择多个选项,您可以将其打包成 32 位 int 的 21 位。

于 2011-11-17T22:38:58.430 回答