中易网

问一个关于A表是否要加一个是和否的状态字段(叫state)的问题

答案:2  悬赏:60  
解决时间 2021-11-10 01:46
问一个关于A表是否要加一个是和否的状态字段(叫state)的问题,B表有个字段关联到A表(叫fk_A,不能为空),当我向B表添加一条记录的时候就将state的值改成“是”。当我想过滤A表的数据(通过状态来过滤)的时候我可以这么写SELECt * from A where state='是',也可以关联表去写,如:SELECt aa.name from A as aa where (SELECt COUNT(bb.id) FROM B as bb where bb.fk_A=aa.id) >0请问大写要不要加state字段呢??加了的话有什么优缺点,我觉得加了有点多余,这样就只能关联表去做过滤,觉得通过关联表去做过滤的sql能让人好理解sql的意思和了解业务。是不是如果A表的数据量可能会很多,所有才加state这个字段呢??
最佳答案
不需要加状态字段。
加状态字段的逆势:
1) 多了一个字段
2) 查询时,因为该字段值仅仅有两种值“是”和"否",用来筛选时基本会扫描整张表,效率不高;而如果用链接b表,并且A表id和b表fk_A都有索引的情况下,会执行索引扫描,效率比较高
 
另外,查询语句不要使用在where中去count,如果B表中fK_A的值具有唯一性,可以用内连接进行查询:
select aa.*
from A aa
inner join B bb on bb.fk_A = aa.id如果B表的fk_A值不具有唯一性,那么使用exists来做条件:
select aa.*
from A aa
where exists (select bb.id from B bb where bb.fk_A = aa.id)
全部回答
用contact连接两个字段
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
彭家寨镇办事处西川南路老年人协会地址有知道
北京审美造型地址有知道的么?有点事想过去
谁有烤排发面配方,就是莒南那里的
谁晓得深圳住房公积金缴交比例是多少?
去除身体湿气
怎样晒干鲜枣
试管婴儿怀孕大概多少天可以生产?
20个月的宝宝不爱吃饭,其他都正常,人也瘦了
我想问问干菊花和干柠檬片能一起泡着喝吗?
城北区小桥办小桥村村老年协会地址在什么地方
ghost笔记本系统如何安装?
哪位清楚怎么查电脑显卡内存
鱼烂瓦解的意思?成语怎么解释?
在上海金山区亭林镇金山驾校学习需要些什么
请问:做眼睛检查时做的”散瞳“对身体、眼睛
推荐资讯
两个月的宝宝拉黄水是怎么回事?
玻璃管液体温度计是什么东西?
进口二手无线路由器价格哪位清楚
黑曨曨的意思是什么?黑曨曨的释义是什么啊?
烫画图层用什么材料,就是用来烫在石板、瓷砖
苏卫食健产字(2004)第0021号生产卫生许可批
克什克腾旗安全生产监督管理局地址在什么地方
变化不测的意思?成语怎么解释?
2.142857……保留两位小数
为什么日光灯管时间用长了,两端会发黑?
喝枸杞菊花茶禁忌
膨大剂对人体有害吗
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?