并且创建表需要有相应的级别比较高的权限,如果每注册一个用户就新建一张表,用户的权限太高了。
再次,按照你的说法,一个人假设有1000个好友,每个表也就1000条数据,相对于数据库来说,这个存储量是相当小的,没有发挥到很好的性能。sql server数据库几百万万条数据是没问题的。
最后,这样查询可能会带来方面之处,但是如果用到了存储过程,复杂的联合查询等(这些都是在数据库中常用的),你这样做就很难完成了。
所以,为何不把这些数据集中到一张表里面呢?
建议建2个表个人表user
(id,qq)id
为序列,qq为存放你自己的qq号码,这样你有几个qq号就有几列
好友表friend
(id,friend_qq,userid)id同样为序列,为以后业务扩充做准备,friend_qq
为好友的qq号,userid为个人表
user
的id,
这样2表通过userid连接,
如
select
*
from
friend
b,user
a
where
a.id=b.userid
and
a.qq=?????
就可以查出你的某个qq号对应的所有好友
1.用户表列:id, 姓名, 等
2.分组表
列:id, 组名, 用户id
3.好友表
列:id, 好友id, 分组id
示例:
1.用户1 创建新分组"我的好友"
INSERT INTO 分组表 (组名, 用户id) VALUES('我的好友', 1)
2.用户1 将 用户2 添加到"我的好友"
INSERT INTO 好友表 (好友id, 分组id) VALUES(2, (SELECT id FROM 分组表 WHERE 组名='我的好友' AND 用户id=1))
3.查询 用户1 "我的好友" 分组下的全部好友
SELECT id, 姓名 FROM 用户表
WHERE id IN(
SELECT id FROM 好友表 JOIN 分组表 ON 好友表.分组id=分组表.id
WHERE 分组表.组名='我的好友' AND 分组表.用户id=1
)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)