比如 user 表,订单表 order_bill
第一种
id
username
passowrd
id
trade_no
subject
uid
第二种
user_id
username
passowrd
order_bill_id
trade_no
subject
user_id
第一种方案的问题是如果表多了 ,id满天飞
第二种方案如果表之间有引用的字段,名字会很长
1
neutrino 2015-07-25 15:13:46 +08:00
第一种,要区分的时候写table_name.id即可,还有个好处是看到table_name_id就知道不是这个表的
|
2
qqjt 2015-07-25 15:14:16 +08:00
偏爱第一种。写php比较多,大多mvc的php框架也是第一种,可以直接数据表对应model。
|
3
fengyqf 2015-07-25 16:25:05 +08:00
|
4
wingyiu 2015-07-25 18:46:48 +08:00
第二种,sql join时可以用USING
|
5
yakczh OP 第二种方案字段重名的概率很小,重名的外键可以用join来的using(xxx) 来拼接 更适合用程序来生成Sql
比如传入参数 $_param=array('trade_bill_id|='=>111,'subject|like'=>'%xxx','user_id|='=>222); 根据这些参数就可以生成sql 而如果是 $_param=array('id|='=>111,'subject|like'=>'%xxx','uid|='=>222); 在处理这个id字段的时候,就不知道是哪个表的 |
6
jdlau 2015-07-26 00:51:13 +08:00 via Android
一般用第二种
|
7
msg7086 2015-07-26 05:45:01 +08:00
从Rails的角度来看,两种都不行。
应该是 users: id, name, pass orders: id, subject, user_id |
8
xifangczy 2015-07-26 17:07:38 +08:00
边写还要边去查看每个id叫什么名字,这很蛋疼。id就是id就完事了,第二种想法很好但会觉得过于啰嗦。
|