【发布时间】:2016-06-10 16:29:25
【问题描述】:
在我的表中,我需要存储一个物理量,该物理量可以以数值或数字区间的形式给出。下表说明了这个想法:
------------------------------
Isotope_ID | Atomic_Weight
------------------------------
1 | 1.00784
2 | [6.938, 6.997]
... | ...
此表不可接受,因为 Atomic_Weight 字段包含不同类型的值。在这种情况下,最佳做法是什么?
Edit1:有三种可能的方式来表示有关原子量的信息:
- 值 +(不确定性),例如1.00784 (9)
- 间隔,例如[6.938, 6.997]
- 最稳定同位素的质量数,例如 38
这三种子类型不能存储在一个字段中,因为这会违反 1 规范化表格。这就是示例表不可接受的原因。 我将尝试更清楚地重申我的问题:在我的数据库中存储有关原子量的信息(可以以三种不同的子类型之一给出)的可能方法是什么?
【问题讨论】:
-
1.请详细说明“这些案例”的含义。什么情况?点vs区间?多个非原始“类型”编码为字符串? 2. 谁/什么“不可接受”?数据库管理系统?关系模型?你的编程标准? PS你不使用[1.00874,1.00874]的原因是什么?
-
您确定要
range吗?在给定的情况下,您不会有一组未知大小的离散值吗? -
@philipxy 感谢您的提问。我试图在 Edit1 中扩展它们
-
@Magoo 我不想要一个范围,因为设计应该适用于不同的 DBMS。我想存储可以以不同类型给出的数据。请看编辑1
-
关于“三个子类型不能存储在一个字段中”请看我答案的中间部分。首先,您在想象一些您认为不同的“类型”,然后您说您不能将它们放在一列中,因为一列只有一种类型。那么想象一下(超级)“类型”是所有这些值的集合。无论哪种方式,您都必须将类型或类型的值编码作为 DBMS 中可用值的子行,因为各个(子)“类型”并非所有 DBMS 原始类型。
标签: database database-design normalization database-normalization