【发布时间】:2021-12-04 10:31:32
【问题描述】:
我需要存储生日,但对于某些人来说,我只知道年份而不知道月份和日期。对于月/日,我只允许填写 null 或两者都填写。我应该如何构建我的数据库?
目前我有这个:
birth_year (YEAR)
birth_month (INT)
birth_day (INT)
birth_month 和 birth_day 可以为空,但最好选择类似的东西:
birth_date (DATE)
has_month_and_day (TINYINT/BOOL)
如果has_month_and_day 为假,则将月份和日期设置为“01-01”?
或者这个:
birth_year (YEAR)
bith_date (DATE)
如果所有内容都填写完毕,则选择带有完整日期的bith_date,如果birth_date 为空,则选择birth_year?
其他建议?我仍然需要能够判断是否填写了月份和日期,所以我不能只使用一个日期列并将月份和日期设置为“01-01”。
如果这对决定很重要,我还需要按年份过滤并按日期排序。
谢谢!
编辑 // 我在 MySQL 文档中找到了这个。你怎么看?
MySQL 允许您将日期存储在日期或月份和日期所在的位置 DATE 或 DATETIME 列中的零。这对应用程序很有用 需要存储您可能不知道确切日期的生日 日期。在这种情况下,您只需将日期存储为“2009-00-00”或 '2009-01-00'。
【问题讨论】:
标签: mysql sql laravel database database-design