创建一个非常简单的计划应用程序
我要求用户告诉我他们工作的日期,以及他们是否在某一天上午,午餐或晚上工作
因此,对于给定用户,她的数据可以是以下矩阵中的一个或所有点
morning lunch evening
mon
tue
wed
thr
fri
sat
sun
我需要能够快速检索此信息,以便我可以提醒用户是时候去上班了。我会有很多用户。
我不关心具体日期或时间。只是离散的第1天到第7天以及每天的3个时段。当然,有很多种可能的组合。
我正在考虑如何存储这些信息。我想知道一个位掩码是否合适/可行/“采用类似的方式”?你会怎么做到这一点?
谢谢!
答案 0 :(得分:3)
虽然位掩码肯定会起作用(使用7天X 3班次= 21位),但我对这些东西的体验是他们总是需要修改。也就是说,增加夜班,或者改变班次。
鉴于此,我建议您在应用中建立一些灵活性。将位掩码的想法与定义位代表什么的表结合起来。这样您就可以根据需要重新定义和修改。如果添加班次,只需将记录添加到定义表并更新每个员工的掩码。
答案 1 :(得分:1)
回答你的第二个问题:除非你有数百万行,否则位掩码不会是一个巨大的性能优势(你的瓶颈仍然是网络I / O),可能是一个过早的优化。也就是说,您将能够将所有用户的选项存储在一个32位整数中。
答案 2 :(得分:1)
不要打扰位掩码。现在做一些简单的事情(比如规范化的数据库模式!),如果你开始测量问题,可以在以后优化性能。
答案 3 :(得分:0)
如果他们每天只能选择一个选项,则可以将数据打包成14位的16位int。或者,如果他们每天可以选择多个选项,则可以将其打包成21位的32位int。