mysql数据库如何存储联系人数据

标签 mysql sql

我想从手机中获取联系人 并存入mysql数据库 我有:--

用户表

id,userId, name, username, password

联系表

id
userId(foreignkey(from user table))
contact_name
mobileNo(unique-primary key)
email(unique key)

现在的问题是:

1)假设我正在获取索尼娅的联系人列表 在哪里, 她有一个联系人:-

Name  mobileNo     email
Soma 5675675675    aaa@mail.com

另一个用户 preeti 的联系人列表有:-

Name  mobileNo     email
sree 999999385    aaa@mail.com

另一个用户 lila 的联系人列表再次显示:-

Name  mobileNo     email
mona 5675675675    agawasti@mail.com

在我的数据库中 mobileNoemail 是唯一主键, 但对于每个用户名/电子邮件/手机号码可能不同..我如何存储和管理这些数据 对于个人用户??

我有一个解决方案:-

1]User_info表

id | UserId | name | username |password

2]联系人表

ContactId | Contact_Name | Contact_Phno |Contact_Email

3]User_Contact表

UserId | ContactId

但是在这里,在联系人表中,我如何才能存储索尼娅,普雷蒂/莉拉的联系信息?因为值(value)观不同。

最佳答案

每个表只能有一个主键,但也许您定义了一个复合键(无法从问题中看出)?我建议将“id”作为主键,并在 mobileNo 和 email 上添加唯一性约束。此选择也适用于您可能使用的大多数网络框架。

ALTER TABLE `contact` ADD UNIQUE `unique_index`(`mobileNo`, `email`);

关于mysql数据库如何存储联系人数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35098927/

相关文章:

php - SQL:从数据库中选择最多一个数字(大小)

php - 如何查看数据库的结果是否与数组中的值匹配

php - 尝试使用一个表中的 id 值将两个表连接在一起

sql - 如何使用 SQL 从数据库表中删除未使用的行?

javascript - 如何使用 MySQL 迁移脚本更新大型数据集

mysql - 如何从重复记录中获取唯一记录(通过忽略前两个字符)?

php - 无法让用户登录 adm 部分

java - 在SQL数据库(例如H2)中插入和获取java.time.LocalDate对象

MySQL:如何从 .SQL 脚本文件运行 shell 命令

sql - 多列分组