薪资系统:灵活存储周末休假计划的数据库结构

时间:2010-10-21 14:30:08

标签: mysql database-design

目的: 离职管理和薪资系统要求在存储在数据库中的官方周末hodiday计划被引用,同时为组织中的每个雇员生成月薪。目标是生成用于存储周末方案的灵活数据库模式。

问题: 数据库模式应该足够灵活,以允许更改周末的定义。我们场景中的周末可以定义为:

星期天 2.星期日+ 1日或2日或3日或4日星期六 3.星期日+(第1和第2)或(第1和第3)或(第1和第4)或(第2和第3)或(第2和第4)或
(第3和第4)星期六
4.星期日+所有星期六

2 个答案:

答案 0 :(得分:1)

可能存储这样的方案 11111 - 意味着星期天和所有的Sats 10000 - 仅指周日 11010 - 表示星期日,第1和第3个Sats

所以第一个数字是星期日,第二个 - 第一个星期六等等

您可以使用按位OR来检查某些值,例如

检查第一个星期六

SELECT * FROM table_name WHERE holiday_scheme | 01000> 0

希望有所帮助。

答案 1 :(得分:0)

按位逻辑可以很聪明,但我相信该方案不能很好地扩展,因为这个表达式可能会在表扫描中进行转换。如果'table_name'很大,它可以在连接上惩罚你很多。

如果您创建work_day_schedule并将该计划关联到'table_name'(例如:员工),则可能会更好。现在,work_day_schedule上的表扫描不会造成太大伤害,你可以做你想要的魔法。

相关问题