在数据库中仅保存日期和月份的最佳方法

Raf*_*ger 10 database database-design date

我们必须保存每年重复活动的日期和月份.(将其视为必须将发票发送给客户的那一年.)

我们将不得不使用这些信息进行一些计算.例如,如果客户每年支付两次.然后,我们不仅要检查今天是否是今天,而且如果这一天是6个月.

我们现在有几个选项:a)我们将信息保存在DATE字段中但忽略年份.b)我们在数据库date_day和date_month中创建两个int字段.c)我们创建一个varchar字段然后进行正则表达式并在每次进行计算时拆分例如31.12.

我们做了几次测试,发现c)肯定太慢了.但我们仍然有选项a)和b).首先我们想要去b)但经过一些测试我们更倾向于a).

是否有一个很好的技术原因可以使一个选项比另一个更好?

(我们目前正在使用MySQL.如果这很重要.)

sle*_*ske 10

我选择b),因为它更准确地反映了数据的含义.具有应该"忽略"某些部分的数据结构是有问题的.如果人们只进行简单的日期比较,假设年份始终相同,但有人使用不同的占位符年,假设年份无关紧要怎么办?

始终使用反映您意图的数据结构.

我认为,c)不好是超出合理的讨论:-).而且我没有考虑性能原因......