新手问题,请高手多鼓励,支持。比如说有一个集团,下面有很多子公司,每个子公司下面又有多个子部门,每个部门下又有多个业务线。现在准备建一个员工表,有个部门字段,保存员工所属部门信息,比如能确定某员工是 A公司A部门A业务线的员工。又准备建一个部门表,保存各个子公司,每个公司的子部门和业务线名称等信息,请问部门表应该有哪些字段,如何关联2个表。谢谢。
解决方案 »
- Oracle计算精度问题(有点难)
- 一个简单的问题,急急急急急急!!!!在线等
- 如何用imp在原来的数据中追加数据?
- 好长时间没解决了,俩台服务器数据备份(同步)问题。大家帮帮忙
- 通过后台select语句 查询出库中数据的insert语句 问题???特急,请各位给予帮助!谢谢!
- 如何将MSSQL数据库导入到Oracle9I ?
- 新年好!ORA如何将多条多值查询结果以单行单值逐条返回结果?也就是查询第N条结果
- 紧急求教关于connect by 的sql问题
- 急!!! PL/SQL的问题
- oracle触发器,表多行转置插入一行多列,急!!!
- oracle9i有没有像sql server企业管理器中的“返回所有行”的功能,即在界面上就可以往表中的字段写入数据不是通过语句INSERT的形式
- 大家看看这个语句错在哪里
其次你的问题是部门表是DeptID做主键,还是DeptID+CompanyID做主键??如果是以DeptID做主键,员工表加入DeptID就可以了,否则,还需要加入CompanyID.业务表也是同理. 至于关联,3个join就可以了.
emp (员工表)
字段:
emp_id varchar2(12) : 每3位分割一类信息,例如:1~3(公司代码)4~6(部门代码)7~9(业务线代码)10~12(业务线中员工代码)“位数可由具体人数部门数公司数确定”
emp_name varchar2(50): 员工姓名
....其他员工信息字段
dept(员工所属信息表)
line_id varchar2(3)业务线信息代码
line_nmae varchar2(50)业务线名称
dept_id varchar2(3)部门代码
dept_name varchar2(50)部门名称
comp_id varchar2(3)子公司代码
comp_name varchar2(50)子公司名称
上面每两组也可以单独建立表但规则要和员工代码编制规则相同3位确定一类信息
select a.* from emp a,dept b
where substr(a.emp_id,1,3)=b.comp_id --限定公司代码
and substr(a.emp_id,4,3)=b.dept_id --限定部门代码
and substr(a.emp_id,7,3)=b.line_id --限定业务线代码
;
因为oracle 9i以后的数据库支持 substr()函数建立的索引,因此这样设计的表不会影响建立索引的问题。
谢谢各位的解答,给分了。