如何体现一张表成员之间的关系?需要再建一张表嘛?
例如,一个旅行团,里面有一个公司的人,一个公司里面的人又有带一大家人的,有夫妻旅行的,有一个学校的,需要怎么设计这些成员之间的关系啊?
谢谢
------解决方案--------------------可以建立a表,维护 几个基本类型(公司,家庭,学校等)
id typeid type
1 001 公司
2 002 家庭
3 003 学校
再建立b表,维护所有旅行人员
id person typeid type
1 11 001 公司
2 22 001 公司
3 33 002 家庭
4 44 003 学校
5 55 001 公司
------解决方案----------------------旅行团
团id 团类别 团名称
--团人员
团id 组织id 人id
--人员
人id 姓名 成员id 组织id
--组织
组织id 组织名称
组织可以有学校也可以是公司
大概这样,参考
------解决方案--------------------一般来说,这么设计是没问题的。
但是,要看具体业务。
对于旅行团来说, 你的客人基本是一次性的, 不需要单独做为实体长期存在。
一般来说,一张表够了, 公司、学校的代表人(或联络人)为记录主信息,其它人做为这个主信息的附属信息(用专业的话来说,就是外挂 。 对于外挂来说,不需要记录过多信息)。
附属信息用复杂格式,如json, xml存贮即可。
id, name, phone, teamid, st_time,...,etc., attach(json, xml)
------解决方案--------------------一张表的话,这样建立看行不!字段:编号,姓名,关系。
其中关系这列的值可以这样建立三个数字表示:1.本单位的用1开头,非本单位的用0开头;2.第二位数字是用来给本单位人员编个序号(从1到n,简单的说就是以本单位人员作为小组长给编个号哈!),其他人员是跟哪个来的就用哪个人的序号(比如序号为2的张三带的是女朋友来,则用12表示她女友前两位编号)