我正在考虑忽略规范化规则以使表格更易于使用,我想知道这是否会导致任何重大问题或违反此类事情的最佳做法。
我正在存储月份范围的数据,我会为month
列提供大量重复值。它将存储当天垃圾值为1的月份和年份,因此下个月我将获得大量'2015-03-01'
然后很多'2015-04-01'
等等。
以下是我正在考虑的两个选项:
table `data`
------------
`id` INT
`data` VARCHAR
`month` DATE
或规范化,这可以防止那些重复,但感觉乏味,并且它实际上并没有帮助我
table `data`
-------------
`id` INT
`data` VARCHAR
`month_id` INT
table `month`
-----------
`id` INT
`month` DATE
在考虑这样的非规范化时,是否有任何好的指导原则?
编辑:这是我的第一个场景的一些示例数据:
INSERT INTO data
(data, month)
VALUES
('sample1', '2014-11-01'),
('sample2', '2014-11-01'),
('sample3', '2014-11-01'),
('sample4', '2014-11-01'),
('sample5', '2014-12-01'),
('sample6', '2014-12-01'),
('sample7', '2014-12-01'),
('sample8', '2014-12-01'),
('sample9', '2014-12-01');
答案 0 :(得分:0)
如果在您的第二个选项中,表月仅包含ID和月份,我将不得不说"那是什么意思?"。如果它包含有关月份的额外信息(例如,当月的工作日数),则值得将其标准化。