首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >规范MySQL数据库中的联系人

规范MySQL数据库中的联系人
EN

Stack Overflow用户
提问于 2014-04-16 12:29:03
回答 1查看 96关注 0票数 1

我正在尝试用登录创建一个聊天应用程序。我使用MySQL数据库来存储用户数据。我的桌子叫userData。它包括:

代码语言:javascript
复制
userID*
userPass
firstname
surname
role
contacts

好的,这个系统是为工作人员和学生和用户可以添加联系人到他们的名单。我正在努力构建我的数据库,以有效地存储联系人。基本上,我不知道如何与联系人栏正常化。

例如..。

userID* userPass firstname surname role contacts 1234 2012 Sponge Bob Student 1345 1234 2012 Sponge Bob Student 3421 1234 2012 Sponge Bob Student 1445

我是否应该为每个userID创建一个表来存储联系人?我正在使用MySQL db在JAVA中实现这一点。如果有任何建议我会很感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-16 12:34:33

您应该有两个表,一个有用户数据,另一个有联系人。然后,可以使用共享标识符将其连接起来。

代码语言:javascript
复制
CREATE TABLE userData (userID int primary key, userPass varchar(32), firstname varchar(32), surname varchar(32), roleID int);
CREATE TABLE roles (roleID int primary key, rolename char(32));
CREATE TABLE contacts (userID int, contactID int);

我把“角色”举了个例子。然后,您可以在必要时加入这些内容,例如:

代码语言:javascript
复制
SELECT contacts.* FROM contacts 
JOIN userData USING (userID)
WHERE userData.userID=1234;

或进一步从正常化中受益:

代码语言:javascript
复制
SELECT CONCAT(ud.firstName,' ',ud.surName),
       CONCAT(cd.firstName,' ',cd.surName)
 FROM contacts
 JOIN userData AS cd on (cd.userID=contacts.contactID)
 JOIN userData AS ud on (ud.userID=contacts.userID)
 WHERE
  contacts.userID=1234;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23109504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档