业务:
有1大批基因,按2中方式分类:1类是按 功能,另1类是按 代谢途径。
此外,1个基因可能同属于多个功能、或者多个代谢途径。
平时主要是通过 功能、或代谢途径 获得相应类别下的所有基因,或者查询某个基因给出相应的代谢途径或功能。
想法:
我想到了2种分表方式,但不知道哪一种更好,所以想请大家给我点建议,甚至提出更好的分表方式更欢迎。我还有想知道一般数据库的性能测试一般都怎么做的呢?有一些经验或者书可以推荐的话那就更好了,先事先感谢大家的关注。
---方式1
1. 表1 代谢途径:category_id(index,自增) / name 类名
2. 表2 基因功能:category_id(index,自增) / name 类名
3. 表达 基因:gene_id(index,用唯一的通用的ID名,不一定自增) / category_id(对应上面的功能、或代谢途径) / type(1代表对应代谢途径,2代表对应基因功能的id)
此方式在此方式搜寻或者join的时候,仅能 用 ON 代谢途径/基因功能.category_id = 基因.category_id 衔接后,加一个where 基因.type=1/2。
---方式2
1. 表1 代谢途径:
/ category_id(index,自增)
/ name 类名
2. 表2 基因功能:
/category_id(index,自增)
/ name 类名
3. 表达 基因:
/gene_id(index,用唯一的通用的ID名,不一定自增)
/category_id(以num-category_id形式储存,如{1-category_id};或是{2-category_id};category_id对应上面的功能、或代谢途径中的id;前面的1代表对应代谢途径,2代表对应基因功能的id)
此方式搜寻或者join的时候可以 用 ON 代谢途径/基因功能.concat('1或者2', '-', category_id) = 基因.category_id 链接到一起