我是设计数据库的新手,我遇到了一个挑战;
在实验室里,DNA样本是从组织样本中制备出来的。这些组织样本具有种类和位置等属性。在DNA样品制备之前,不同的组织样品混合是可能的,但并不总是这样。
因此,有3个表,具有以下属性:
表Tissue_sample:
- ID
- location
- species 表Mixed_tissue_sample:
- ID
- tissue samples which are mixed together 表DNA_sample:
- ID
- tissue_sample OR mixed_tissue_sample 应该可以检索制备DNA样本的所有组织样本。
将其放入数据库的最好方法是什么?在MySQL工作台中可以做到这一点吗?
发布于 2014-11-27 00:16:20
在DNA表中定义两个字段以引用单个或混合组织样本。其中一个字段将保持为空。
组织: id,位置,种类
混合: id,...
mixed_tissues: mixed_id,tissue_id
DNA: id,tissue_id,mixed_id
是的,您可以在MySQL工作台中创建这些表。
发布于 2014-11-27 00:29:29
首先,解决Tissue_sample和Mixed_tissue_sample之间的关系。1个或多个Tissue_sample定义一个Mixed_tissue_sample,因此关系是1:n,并且您需要在Tissue_sample处有另一个列,该列将用作Mixed_tissue_sample的foreign key。经Mixed_tissue_sample鉴定后,将两张表连接,即可获得混合组织样本的组织样本。
其次,您需要解析DNA_sample。你需要一个连接到Tissue_sample和Mixed_tissue_sample的foreign key。
您可以通过创建触发器来确保DNA_sample没有连接到这两者,这将阻止任何inserts或updates,这将导致DNA_sample记录,如果您需要的话,该记录具有两个foreign keys的值。
发布于 2014-11-27 04:12:29
使用表继承。
或者将组织样本和混合组织样本全部放在同一个表中(单表继承),具有一个"type“列,
或者将它们放在两个不同的表中,其主键指向一个公用表(类表继承)。DNA样本表将指向这个公共表。
https://stackoverflow.com/questions/27153621
复制相似问题