我觉得建表好些,算法也简单。用你的办法当然也不是不能做,现在你想存取数都麻烦,再想想数据库的完整性维护等问题处理起来是不是也很复杂?效率高在哪里?存这个ID串时不能用INT,还是需要转成字符串,再转成binary 来存的,实际上每个ID号最后在varbinary 中的长度就不是4了。 两种方法,一种是用符号分隔,这样: insert into t_exp values (cast('1111,2222,345532,4567865,15644' as binary))一种是定长度,这样: insert into t_exp values (cast('000001111000002222000345532004567865000015644' as binary)) 若用的第二种方法,才可以用substring(Friends,1,9)读第一个朋友的ID号,用 substring(Firends,10,9)读第二个。哎,怎么看都麻烦,非要这样用?真是想不通啊!
因为目前我们一个数据库就是这样做的
可是我无法从里面正确读出数据。但那个设计是正确的。
如sql server 我用 substring(Friends,1,4) 可以读到一个朋友的ID号。
可是我用 substring(Firends,5,8)就读得错了。
只要告诉我binary到底怎么存取及读就可以了。
谢谢
1 111
1 32654
...用你的办法,每个人ID号又不一样,平白的增加难度。
ID号为int呀,binary(4)可搞定的
建表不好吧?我想效率可能不高
可能效率不如binary高
两种方法,一种是用符号分隔,这样:
insert into t_exp values (cast('1111,2222,345532,4567865,15644' as binary))一种是定长度,这样:
insert into t_exp values (cast('000001111000002222000345532004567865000015644' as binary))
若用的第二种方法,才可以用substring(Friends,1,9)读第一个朋友的ID号,用 substring(Firends,10,9)读第二个。哎,怎么看都麻烦,非要这样用?真是想不通啊!