注册 登录
编程论坛 ASP.NET技术论坛

关于SQL的问题

chenyirui121 发布于 2007-04-23 20:32, 617 次点击

我现在创了一个登陆表和注册表:
create table login
(
loginID varchar(20) primary key,
loginUserName varchar(20) null unique,
loginPwd varchar(20) null
)


create table register
(
loginID varchar(20) foreign key references login(loginID),
userName varchar(20) primary key,
userTrueName varchar(20),
userPwd varchar(15),
userGender varchar(2),
userBirthDate varchar(20),
userProvince varchar(10),
userCity varchar(10),
userEmail varchar(30),
userRegisterDate datetime

)
可是我创了之后就遇到了一个难题,那就是用户是在注册表里注册信息的,可登陆表里没有信息啊,那当用户登陆的时候又怎么样取得到注册表里的信息呢,我正纳闷呢!!初学者,请各位帮忙看一下怎么解决.谢谢!!

9 回复
#2
球球2007-04-23 22:03
不是有外建关系吗?
#3
xiezili2007-04-24 00:47
觉用一个表就够了!
#4
冰镇柠檬汁儿2007-04-24 09:06
create table Users
(
id varchar(20) primary key,
UserName varchar(20) null unique,
password varchar(20) null
userGender varchar(2),
userBirthDate varchar(20),
userProvince varchar(10),
userCity varchar(10),
userEmail varchar(30),
userRegisterDate datetime
)
#5
cyyu_ryh2007-04-24 11:41
加上go
#6
chenyirui1212007-04-24 12:24
回复:(chenyirui121)关于SQL的问题
谢谢各位大侠,可是我想把登陆表和注册表分开啊,只是不知道怎么把他们关联起来,当我注册信息的时候,希望登陆表也跟着一起更新.
#7
cyyu_ryh2007-04-24 12:25
利用键,写两个更新语句
#8
球球2007-04-25 17:11
select ... from login,register where login.loginID=register.loginID不就可以根据用户登陆的时候取得到注册表里的信息.
#9
从小到大2007-04-25 23:51
干吗这么麻烦呢?直接一个表解决问题
#10
铲铲2007-04-26 06:35

不明白你为什么要这样设计。
首先看看吧,登陆注册的本质,注册实质上是存储信息,登陆实际上是拿出原来存储的信息比对来验证用户。他们都是对“用户”这一实体的不同操作。
现代使用的都是关系数据库。所谓关系数据库:
设计数据库应当从ER(实体和关系)出发。在数据库中,通常一个实体对应一个数据表,表中的列对应了该实体拥有的属性,关系就是利用主键外键将多个表(实体)联系起来的关系。

即便你要把他们分开成两个表,那不妨具体分析,把用户这个实体拆分成“注册”和“客户”两个实体。我们所说“注册”不是指一个动作,而是指一个实体。两个表通过主外键联系起来。具体主键外键怎么选择,就看你这两个实体的关系是什么的,一对一,一对多还是多对多,从集合的角度说他们的包含关系。

所以实在不明白你为什么如此设计数据库。这样做对于操作、理解和编程都无益,因为没有用解决问题的思维观点出发,这反而会增加数据库负担。

1