1
Muninn 2017-05-10 09:27:15 +08:00
专业技术能力下边如果没有直接的题,那么可以只对应末级节点啊。
学科在程序里做成一棵树就行了。参考无限扩展的机构设计。 |
2
jianzhiyao020 2017-05-10 09:34:22 +08:00
http://www.jianshu.com/p/49026d65c26e
这个方案应该能够类推相关解决方案 |
3
ivvei 2017-05-10 09:56:42 +08:00
没看出这个模型有什么问题啊…… 就直接按照你描述的建好啦,比如
题目 ID, 题目, 学段,一级学科,二级学科 没有二级学科的,可以视为二级学科为“没有”。 单纯存储这样的结构毫无问题。具体的还得看你是怎么使用这些数据,用起来是不是方便。 |
4
abcbuzhiming OP @jianzhiyao020
@ivvei 其实你们两个的想法我都考虑过,一个就是树,一个不是树,有限级别,我现在就是在权衡我这个“分级”到底改起来到底麻烦不麻烦。比如说如果万一标准变了,某个学科不存在了,对应的题目要转移到新学科去,变动是否很大 |
5
gamexg 2017-05-10 10:19:46 +08:00
学科表
id 名称 上级学科 题目表 id 题目名称 题目所属学科 现在是 2 级学科可以用“所属 1 级学科 所属 2 级学科 ”,但是下次如果再增加个三级学科,难道要修改表结构? |
6
tabris17 2017-05-10 10:21:44 +08:00
简单的树状结构,有什么问题?
如果要能按照节点查找所有字节点,可以使用左右值结构 |
7
reus 2017-05-10 10:25:54 +08:00
学科合并成一级不就行了。
综合素质,教育能力,语文,数学,英语…… 业务模型又不用对应到数据库模型。数据库里就一级学科,业务里需要区分出一级二级时再另外处理下。 |
8
sunriseyuen 2017-05-10 10:30:20 +08:00 via Android
用标签的模型应该可以
|
9
reus 2017-05-10 10:31:09 +08:00
树不用存到数据库里,直接在代码里写,也不会经常改动的。需要用到树时,从数据库读出来再生成。
用关系数据库存树,各种方式都有优缺点,麻烦得很。你这种父子关系不经常变动的,写在代码里,要改时才改代码就行。 |
10
abcbuzhiming OP @sunriseyuen 标签的模型是什么?
|
11
ivvei 2017-05-10 10:46:13 +08:00
@abcbuzhiming 标签就是 tag 那种。适合有多种分类方式并且级别不明显的,不适合你这种分类方式唯一确定且级别层次明显的。
|
12
jianzhiyao020 2017-05-10 10:48:50 +08:00
@abcbuzhiming
其实还好啦, 用户对读是敏感的, 但是写是可以异步的, 可以走个异步队列去修改相关的题目或者分类, 修改步骤很简单, 但是索引的重建在数据量大的情况下需要考虑, 我们现在场景数据是千亿级别的, 都是用 linux 目录形式做索引, 索引应该问题不是很大。 |
13
halfcoder 2017-05-10 10:54:15 +08:00
最直接的想法:按无限分类来做
|
14
sunriseyuen 2017-05-10 11:06:22 +08:00 via Android
@abcbuzhiming 一个题可归为一年级,或是高中
|
15
CYKun 2017-05-10 11:37:54 +08:00 via Android
同意 7 楼的想法,具体来说就是:
学科表: id 学科名称 父学科 id 题目表: id 题目名称 学科 id |
16
ideascf 2017-05-10 13:37:11 +08:00
学科表
id 名称 上级学科 题目表 id 题目名称 学科题目关系表 id 题目 id 学科 id 这样有几个好处: 1. 一个题目可以关联多个学科 2. 学科 删除或修改 不影响题目表 坏处: 表多一些,查询的时候需要做 join |