我目前正在设计一个SQL数据库来存储大量的生物数据。主表有超过100列,其中每行是特定的采样事件,每列是物种名称。值是该抽样事件中该物种的个体数量。
通常,我希望根据他们的分类法将物种聚集在一起。例如:假设Sp1,Sp2和Sp3属于Family1; Sp4,Sp5和Sp6属于Family2;而Family1和Family2属于Class1。如何构建数据库,以便我可以简单地查询特定的族或类,而不是每次列出100多列?
我的第一个想法是创建第二个表,列出第一个表中每列的属性。这样第二个表中的主键对应于表1中的列标题,表2中的列是我想要选择的类别(例如,族,馈送类型,生命阶段等)。但是,我不确定如何编写可以这种方式连接表的查询。
我是SQL的新手,我不确定我是否会以完全错误的方式解决这个问题。如何构建我的数据/写入查询以实现我的目标?
提前致谢。
答案 0 :(得分:5)
不,不,不。不要在表格中列出物种列。
相反,如果您现在有一行,则需要多行。它将包含如下列:
species
表 species
表可以有一个层次结构,整个层次结构包含属,族,顺序等。