[color=rgba(0, 0, 0, 0.56)]94
1分收藏
[color=rgba(0, 0, 0, 0.56)]
某电商订单表中的主键为订单号,根据业务常识判断不能存放于订单表中的字段是()
[color=rgba(0, 0, 0, 0.65)]A.客户ID
B.产品名称
C.付费时间
D.产品金额
正确答案:B,D , 你的答案:A回答错误
[backcolor=rgba(67, 188, 96, 0.05)]
解析:
一个订单中可能存在多个产品,所以存放产品名称字段会破坏主键约束。同样的产品金额也不可以,订单金额是没问题的。所以选BD
这道题考察的是对数据库主键的业务理解,
因为规定了主键是订单号,所以订单号这一字段上每一行的记录值(即订单号)都应该是唯一的。
又因为一个订单号所代表的订单事实里可能会有不同的产品名称及其对应的产品金额,如果把这两项放入订单表中,就不得不出现同一订单号要重复写几行来区分不同的产品名称和产品金额,就会导致订单号在此订单表中无法做到唯一性。
而一个订单号只会对应一个客户ID,且一个订单只会发生一次支付动作,所以这两项在一个订单事实上都是天然唯一的,可以放在订单表中。
订单号 | 客户ID | 产品名称 | 产品金额 | 付费时间 |
1001 | 01 | 衣服 | 600 | |
1001 | 01 | 衣服 | 500 | |
1001 | 02 | 鞋子 | 400 | |
1001 | 02 | 鞋子 | 300 |