显示当前用户的好友,好比CSND里面的,在个人主页的右侧,显示当前用户的好友。
比如:当前用户的登录ID存储在 [dbo].[CSDN_User]的[UID]字段内,我的好友是放哪个表呢?
下面这个设计可靠吗?
[PrimaryID] [UID] [Password] [MyFirendID]
1 zooen2011 xxxxxxxxx 3,9,0,2,13
------解决方案--------------------
这个累人的很,还得转换
使用
primaryid myfriendid
1 3
1 9
1 2
这样的,链接使用更方便。
------解决方案--------------------
- SQL code
--好友关系表create table FriendShip( ID int identity(1,1) primary key,--PK UID1 uniqueidentifier not null,--FK UID2 uniqueidentifier not null,--FK Status int not null default(0),--状态,1:用户1关注用户2,2:用户1用户2互相关注,等等... CreateTime datetime default(getdate()) not null, ModifyTime datetime null --其他字段)
------解决方案--------------------
最少要2各表,1:本用户的信息,包括登录状态。2:好友关系表,一对多。因为你最少要展示出好友的名称吧,给个ID也没用。个人建议的1表:
uid,uname,status(状态),logintime(登录时间),logouttime,password。暂时这些够了,好友的信息到2表里面,uid,fid(好友ID),fname(好友姓名),好友当前状态可加可不加。
对于你的表,priamryid是多余的,因为uid已经,也应该能够唯一标识一个用户了。自增ID其实大部分情况下都没必要成为主键的。
------解决方案--------------------
建议建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号对应的所有好友