个人正在写一个场地租借系统, 提前开放2週给人预约,
租借的过期纪录要保留起来作系统或规则改善研究,
可想像随营运时间, 历史资料会越来越多,
实际上, 使用者只会预约近2週的场地借用时段(每天有15个时段),
1年下来 52週, 只有2週要读取, 历史包袱 50 週,
2年下来 52x2=104週, 也是只有2週要读取, 历史包袱 102 週;
3年下来 52x3=156週, 也是只有2週要读取, 历史包袱 154 週;
N 年下来, 可想而知的历史包袱 (52N - 2) 週;
有率资料第1年结束, 佔比剩 4% = (2/50 )
有率资料第4年结束, 佔比剩不到 1% > (2 / 206),
何况不只一个场地项目, 光想到此就觉得糟糕了!
我有两个想法, 想问的问题是第2个想法:
我第1个想法,
我想像用 NewTable 专放2週内的资料, OldTable 专放过期资料;
写个Routine在凌晨时, 将资料从 NewTable 过期资料 搬到 OldTable.
我第2个想法, 只用1个Table,
但是多加一个 Flag 栏位, 栏位值 1 表示 New, 栏位值 0 表示 Old
虽然Flag 栏造成表格变更大,
但能对 SQL Server 是比较有效率查询!
这栏位属性要如何设置? 算是要 SQL Server 对 Flag 栏的做索引吗?