首先,我将用现实生活中的例子来解释我的问题。假设我们是一家公司,我们销售不同的交通工具,例如汽车、公共汽车、卡车、火车、飞机等。假设我们每天有大约 10.000.000 种不同的物品。
对于每个项目,我们都有一个唯一的名称(例如汽车 Audi A8 X 或飞机 Boing 747-200B Y),其中 X 和 Y 是唯一值。不要担心命名,因为它工作得很好。
对于每个项目,我们还有一些特殊数据。数据取决于类型,例如对于汽车:尺寸(长度、宽度、高度……)、动力系统等。对于飞机,我们有长度、内部宽度、翼展、机翼面积、机翼后掠角等。
现在的问题是……我想把所有这些数据从不同的 Excel 文件和纸上放到数据库中。
问题1:哪种数据库模型更好?
想法#1:我将创建一个名为items的表,我将在其中仅存储我们正在销售的产品的名称(例如汽车 Audi A8 X、飞机 Boing 747-200B Y 等)。与其他表(汽车、飞机、火车……)相比,我将存储汽车/飞机/火车的额外数据。因此,如果我想获取例如 car 的所有数据,则必须检查 table car。如果我想获得例如 train 的所有数据,我将不得不检查 table train。
想法#2:我是否应该创建一个表来存储所有项目的名称(就像在想法#1 中的items)。除了额外的数据透视表(例如,带有字段的数据:项目、键、值)之外,我还能在哪里找到所有信息?
问题 2:我需要所有数据的历史记录。在第一种情况下,我将不得不从例如 table car中复制行,因为一个字段不同。但是对于想法 #2 ... 对于数据透视表数据中的所有行,如果数据有效(或何时有效),则需要获取信息。
你能帮我么?我不知道哪个模型更好,或者实际在生产中使用什么。另外......有没有关于将历史数据存储到数据库的好书?
谢谢!