你的位置:首页 > 数据库

[数据库]合理使用外键


2张数据表:订单Order,订单进度OrderProgress

设计思路一、

1.Order:oid,userid,postInfo,isDel

2.OrderProgress:opId,oid,createTime,PayTime,isDel

这么设计,oid做外键,当拿到一个Order对象,在MVC里无法通过该对象获取订单进度.需要根据oid再查表OrderProgress;

 

设计思路二、

1.Order:oid,userid,postInfo,opId,isDel

2.OrderProgress:opId,createTime,PayTime,,isDel

这么设计,opId做外键,当拿到一个Order对象,在MVC里很方便获取对应的订单进度.

 

个人认为:外键效率更高.因为已经知道了opid,要查找此条数据方便(主键-索引);而设计思路一,还要重新查找.

 

思考:外键本质是怎么回事?