【发布时间】:2013-05-14 10:33:31
【问题描述】:
我想设计一个有 2 个类别的数据库。 每个类别有 2 个子类别,但它们与其他类别非常相似,例如:
预防性设备维护:
- cat1
- id、设备、型号、系列、配件、日期、成本、状态
- 猫 2
- id、设备、型号、系列、配件、日期、成本、状态
矫正设备维护
- cat1
- id、新设备、旧设备、借用设备、描述
- 猫 2
- id、新设备、型号、系列、配件、日期、成本、旧设备、借用设备、描述
因此,您可以看到收集的预防性设备维护数据之间的唯一区别是猫(cat1 或 cat2)。 为了解决这个问题,我想制作一张像
CREATE TABLE `preventive_e`(
id INTEGER NOT NULL PRIMARY KEY,
equipment VARCHAR(25) ,
cat VARCHAR(4) ,
CONSTRAINT `uc_Info_E` UNIQUE (`id`)
);
INSERT INTO `preventive_e` values (1,'nintendo','cat1');
INSERT INTO `preventive_e` values (2,'psp','cat2');
现在纠正它会是一样的,但是它们不是相同的字段,它们几乎是相同的字段,如果是 cat1 我只想存储一些字段,但如果是 cat 2 我想存储相同的字段但是更多字段
有没有办法使用继承或其他东西?扩展字段但能够添加更多特定字段?查询会是什么样子。
【问题讨论】:
-
为什么要将只包含 4 个字符字符串的字段声明为 varchar(50)? char(4) 似乎更合适。
-
我发布了一个答案,但再次阅读了这个问题,我们需要更多关于什么与什么相关的描述。装备正好有2类?设备有维修吗?预防性的,纠正性的,两者兼而有之?一个类别由 id、新设备、旧设备、借用设备、描述来描述?或者那是示例类别的列表?
-
您实际上是在尝试规范化您的表格,这是一件好事,但很难按照您的要求进行操作。