我试图实现一个表,该表将用作应用操作。客户申请贷款,员工会批准。对应的sql是:
create table approve(
employee_ID char(8),
customer_ID char(8),
loanID char(8) primary key,
foreign key(employee_ID) references employee(ID),
foreign key(customer_ID) references customer(ID)
)
但是,问题是当我尝试插入一个元素时,它要求我输入loanID。但是,应显示贷款id,并根据此loanID确定员工。这不合乎逻辑吗?如果这是合乎逻辑的,我如何可以修改代码?
发布于 2014-05-19 00:47:52
如果loanID
来自另一个表,则还应该将其命名为外键,就像处理employee
和customer
一样
create table approve(
employee_ID char(8),
customer_ID char(8),
loan_ID char(8),
foreign key(loan_ID) references loan(ID),
foreign key(employee_ID) references employee(ID),
foreign key(customer_ID) references customer(ID)
)
如果要防止同一贷款在表approve
中有多个条目,请创建一个索引:
create unique index approve_loan_ID on approve (loan_ID)
发布于 2014-05-19 00:57:38
如果它是一对一的关系,那么结构是好的。
贷款和批准可以共享主密钥
创建批准职位需要一个贷款职位。而贷款只能批准一次?
您所需要做的就是将“批准”的主键设置为“贷款的外键”。
foreign key(loan_ID) references loan(ID)
发布于 2014-05-19 01:16:41
更改表结构,以便只有贷款表、客户表和雇员表。
增加这样的关系
贷款1-*客户
“客户可以有多笔贷款”
贷款.1-*雇员
“贷款只能得到员工一次批准”
为贷款添加已批准的位标志,将其标记为已批准,或标记为“已申请”/“批准”/“拒绝”/“任何”。
https://stackoverflow.com/questions/23733337
复制