业务:
有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 链接到一起
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.