日期:2014-05-17  浏览次数:20501 次

“继续添加”功能的数据库设计求解
本帖最后由 programmer_wei 于 2013-12-06 16:16:52 编辑
本人小菜刚实习,现在遇到一个问题求解。

功能描述:用户在网页上进行简历添加的用户信息时候,比如用户的“语言能力”这一项,用户可能会多种语言,所以用户填写好了第一语言水平以后,会点击“继续添加”按钮来添加第二语言水平。

我看见数据库设计的人在设计这个功能的时候,单独将“语言水平”这一项拿出来建一张表(因为用户和语言水平是1:m)。用“户信息表”的主键是自增的ID(id),“语言能力表”的主键也是一个自增的ID(id)并且有一个字段是用户id(uid)。

我现在有疑问的是这两张表是应该进行怎样的关联呢,他们说会用到什么索引来进行关联这两张表,我不太明白,我对索引不是很清楚。我的理解是不是我们再建立一张表,这张表的字段是“用户信息表”的自增ID(id)和“语言水平表”的用户id(uid)?

------解决方案--------------------
通过 用户id 这个字段关联就可以的
------解决方案--------------------
哦 ,不用建什么索引。

就是这样的语句,通过left join关联就行,后面的on写个关联添加,比如:

select *
from 用户表 a
left join 语言水平表 b
       on a.uid = b.uid
------解决方案--------------------
但是理论毕竟是理论,国内的情况,软件工程上的东西基本上很难实施。除了大公司或者为了某些原因,才会去后期准备,比如CMMI。除非你能做管理层,不然这个现象有点难短期处理,你就当锻炼一下自己的分析能力吧