新手提问,在线等高手帮助!!!

misafir_nb ld  2015-06-06 03:22:46
在SQL SERVER中,我建立了一个表,这个表的主键是ID,我计划在这个表中添加一个列,叫Friends,保存我的所有的好友的信息,要实现这个,是不是要新建立一个Friend表,与之前的ID关联,然后我每插入一条新的纪录,就生成一个相关的表来保存我的Friends数据?
初学编程,刚好要用到这样的知识,暂时不求深解,等基础学完再回头看书,现在只希望有高人指点一下怎么操作,能够用就行。最好是写明白实现步骤,例如:
第一步,建立一个User表,其中主键为ID;
第二步,建立一个Friend表;
第三步,建立User与Friend之间的关系;(关键是这个地方怎么弄?)

然后是几个问题:
一、这种关系建立后,是不是意味着我每在User中插入一条记录,就自动生成一个表?
二、我怎么访问这个表中的数据?SQL语句是怎样的(查询、插入、删除、更新)?

欢迎贴链接、转帖、复制,感激不尽!
...全文
75 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
misafir_nb 2015-06-06
就是不清楚,现在有没打算认真学这个,就想着直接伸手拿来用,让大家见笑了,以后有时间会好好学的。感谢卖水果的回答,就用这个了,谢谢!
回复
卖水果的net 版主 2015-06-06

create table users(userid int identity primary key, name varchar(10))
go
create table friend(userid int , fid int)
go
alter table friend 
add constraint fk_friend_userid foreign key (userid) references users(userid)
go
alter table friend 
add constraint fk_friend_fid foreign key (fid) references users(userid)
go
insert into users(name) values
('张三'),('李四'),('王五'),('马六')
go
select * from users 
go
insert into friend(userid,fid) values
(1,2),(1,3),(1,4),(2,1),(2,3),(2,4),(3,4),(4,3)
go
select a.name [用户名] ,b.name [他的好友]
from friend f
inner join users a on f.userid = a.userid
inner join users b on f.fid = b.userid
go
drop table friend 
go
drop table users 
go


(4 行受影响)
userid      name
----------- ----------
1           张三
2           李四
3           王五
4           马六

(4 行受影响)


(8 行受影响)
用户名        他的好友
---------- ----------
张三         李四
张三         王五
张三         马六
李四         张三
李四         王五
李四         马六
王五         马六
马六         王五

(8 行受影响)


回复
frankl123 2015-06-06
楼主对数据库一点概念都没有,建议还是先看书。
回复
专注or全面 2015-06-06
列是表的一个字段,记录是表的内容,一条记录包含了部分或者所有字段的内容
回复
专注or全面 2015-06-06
楼主先把表和记录之间的关系弄清楚把,我感觉这两者的关系你还不清楚
回复
misafir_nb 2015-06-06
那能不能实现这样的呢? 就是我建立一个表User,然后再建一个表Friend,让User与Friend关联,然后我每向User插入一条数据,就会自动建一个相关的Friend表,然后我使用Friend表就像使用内部类一样,用User.Friend这样?
回复
shoppo0505 2015-06-06
friend其实也可能是user的吧? 那就是只需要user一个表,你说的friend也都放入user表中,然后要个n-n的关系表,表格至少有3列,ID, ID_User1, ID_User2, 后两列就是user表中2个人的对应关系。
回复
0808xyj 2015-06-06

-- create 
create table Friend(fid int,userid int,name varchar(100));
需要维护Friend 这张表信息
-- 关联user表查询,好友信息
select * from User u,Friend f where u.id = f.userid
-- insert 
插入时,需要获取user 表的id
-- delete
delete from Friend where userid in('xxx','xxx',...)
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2015-06-06 03:22
社区公告
暂无公告