【发布时间】:2020-09-01 01:56:26
【问题描述】:
这是一个关于数据库设计的更普遍的问题。 我目前正在将 Excel/VBA 程序迁移到 SQL 并遇到以下情况,我需要深思熟虑,因为我是第一次这样做。
excel中的现状: excel sheet
到目前为止的部分新 MySQL 表:
+--------------+-------------------+---------+----------+-------+---------------+
| licenseplate | mileage_last_year | january | february | march | first_quarter |
+--------------+-------------------+---------+----------+-------+---------------+
| BP 11-111 | NULL | 100 | 100 | 100 | 300 |
| BP 11-222 | NULL | 561 | 1111 | 707 | 2379 |
+--------------+-------------------+---------+----------+-------+---------------+
“first_quarter”等都是生成的列,目前没有问题。
但是将当前年份的里程保存到下一年的最佳做法是什么?
- 每年一个新表并从前端查询,具体取决于用户的选择?
- 每个车牌/汽车和年份的新行,并且只在前端显示当前年份?
【问题讨论】:
-
将您的数据标准化为
(licenseplate, year, month, value)。所有值(包括年初和季度中间总和的值)都必须通过查询获得。 -
不要将数据库视为更大版本的电子表格,
标签: mysql sql database database-design