SQL Server数据库中,这种怎么排序
SQL Server数据库中,这种如何排序?
数据库表(车辆档案)中有一个自增字段,还有一个车牌号字段。
听取了一些朋友的建议,很多时候都是根据车牌号进行数据检索,所以直接用车牌号做了主键。
但是,这样的话,数据库中的数据的排序,不是按照自增列排序的。
我想让数据按照自增列排序,该怎么做呢?
------解决思路----------------------
哪个朋友给你这样的建议?你可以用自增字段作为主键,车牌号字段建立索引就行。
如果你觉得还是车牌号作为主键比较好,那一般的处理方法是按添加时间排序,也就是你需要有一个日期字段。
------解决思路----------------------
如果你真这么搞的话,可以主键、聚集索引分开
车牌是主键,自增是聚集,话说这不是吃饱了没事做么……
------解决思路----------------------
UNIQUE约束自带索引(还是说本身就是索引?这块不是很了解,反正有索引)
------解决思路----------------------
不是能不能的问题,而是不科学,不符合业务,车辆是存在过户的,过户的车辆信息你就得单独处理老车主的历史记录,总不能直接替换车主信息吧。
------解决思路----------------------
车牌号是唯一的不错,但背后的信息不是唯一的,跟身份证号码不同,车牌号背后以后可能是不同的车主,也可能是不同的车,不要把自己从一开就限在框子里,以后如果要改就麻烦了。
------解决思路----------------------
9L的意思是告诉你,车牌主人也是可以换的,就跟我们的手机一样,如果你所有的数据都是依赖车牌号,而不是自定义的主键(这里就是自增列),那一旦车牌所有人换了之后,你就没办法处理了,因为你所有的信息都被车牌绑死了,而如果有自增列的话,只要把自增列对应的车牌进行修正就可以了
------解决思路----------------------
之所以让你不用车牌号做主键,是可能存在相同车牌的数据录入,所以从这一点上讲,不该在车牌号上做唯一约束,你的系统不知道是干什么用的,如果是车主会员系统,那么其实是以车主为准,车主原先通过你们这里代理购买了保险及其他服务,这些数据期数都应该要保留下来,如果车主换车了,但车牌号还保留着,所以以车牌号做主键就不合适,到时你可能只能以“苏A12345_1”这样的方式录入,但你检索还能用“=”吗?,你需要重新录入一辆同牌号的车辆信息,通过车牌号能检索出他的两条或多条信息,要知道保险信息又是跟着车辆走的,不能将上一辆车的信息这样武断的去替换的。
再说说索引吧,我的经验是数据量只在几万条之内的话,建不建索引真的区别不太大,你自己玩熟了可以做一下测试,不要麻木迷信,乱建索引有时适得其反,如果数据量较大你就在该列上建一下非聚集索引,使其索引覆盖一下,我看就差不多了。
数据库表(车辆档案)中有一个自增字段,还有一个车牌号字段。
听取了一些朋友的建议,很多时候都是根据车牌号进行数据检索,所以直接用车牌号做了主键。
但是,这样的话,数据库中的数据的排序,不是按照自增列排序的。
我想让数据按照自增列排序,该怎么做呢?
------解决思路----------------------
哪个朋友给你这样的建议?你可以用自增字段作为主键,车牌号字段建立索引就行。
如果你觉得还是车牌号作为主键比较好,那一般的处理方法是按添加时间排序,也就是你需要有一个日期字段。
------解决思路----------------------
如果你真这么搞的话,可以主键、聚集索引分开
车牌是主键,自增是聚集,话说这不是吃饱了没事做么……
------解决思路----------------------
UNIQUE约束自带索引(还是说本身就是索引?这块不是很了解,反正有索引)
------解决思路----------------------
不是能不能的问题,而是不科学,不符合业务,车辆是存在过户的,过户的车辆信息你就得单独处理老车主的历史记录,总不能直接替换车主信息吧。
------解决思路----------------------
车牌号是唯一的不错,但背后的信息不是唯一的,跟身份证号码不同,车牌号背后以后可能是不同的车主,也可能是不同的车,不要把自己从一开就限在框子里,以后如果要改就麻烦了。
------解决思路----------------------
9L的意思是告诉你,车牌主人也是可以换的,就跟我们的手机一样,如果你所有的数据都是依赖车牌号,而不是自定义的主键(这里就是自增列),那一旦车牌所有人换了之后,你就没办法处理了,因为你所有的信息都被车牌绑死了,而如果有自增列的话,只要把自增列对应的车牌进行修正就可以了
------解决思路----------------------
之所以让你不用车牌号做主键,是可能存在相同车牌的数据录入,所以从这一点上讲,不该在车牌号上做唯一约束,你的系统不知道是干什么用的,如果是车主会员系统,那么其实是以车主为准,车主原先通过你们这里代理购买了保险及其他服务,这些数据期数都应该要保留下来,如果车主换车了,但车牌号还保留着,所以以车牌号做主键就不合适,到时你可能只能以“苏A12345_1”这样的方式录入,但你检索还能用“=”吗?,你需要重新录入一辆同牌号的车辆信息,通过车牌号能检索出他的两条或多条信息,要知道保险信息又是跟着车辆走的,不能将上一辆车的信息这样武断的去替换的。
再说说索引吧,我的经验是数据量只在几万条之内的话,建不建索引真的区别不太大,你自己玩熟了可以做一下测试,不要麻木迷信,乱建索引有时适得其反,如果数据量较大你就在该列上建一下非聚集索引,使其索引覆盖一下,我看就差不多了。