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

mysql数据库如何存储联系人数据,mysql,sql,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 56756

我想从电话里取联系人 并存储到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
Name  mobileNo     email
mona 5675675675    agawasti@mail.com
另一个用户lila的联系人列表也有:-

Name  mobileNo     email
sree 999999385    aaa@mail.com
Name  mobileNo     email
mona 5675675675    agawasti@mail.com
在我的数据库中 mobileNo电子邮件是唯一的主键, 但是对于每个用户名/电子邮件/手机号码可能都不一样..我如何存储和管理这些数据 对于个人用户

我有一个解决方案:-

1] 用户信息表

id | UserId | name | username |password
2] 联系人表

ContactId | Contact_Name | Contact_Phno |Contact_Email
3] 用户联系表

UserId | ContactId

但在这里,在联系人表中如何存储sonia、preeti/lila的联系信息?因为值不同。

每个表只能有一个主键,但您可能定义了一个复合键(无法从问题中分辨出来)?我建议将“id”作为主键,并在mobileNo和电子邮件上添加唯一性约束。这种选择也适用于您可能使用的大多数web框架

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

检查您的电话号码数据类型。可能是整数,您的电话号码超出了限制。

好的,但是我如何存储这些值呢?因为sonia和lila的PHNO是相同的,但是姓名和电子邮件是不同的。所以只有一个值可以存储……有没有办法存储它们的值?如果电话号码可以相同,为什么要将它们声明为主键(这些定义是独一无二的),在联系人表中?我认为phNo和电子邮件是唯一的。也就是说,我把它作为主键。那么,如果我将主键更改为唯一键,它会起作用吗?你可以将它们设置为“组合主键”,但大多数人会建议将“id”设置为主键,并简单地在电话号码和电子邮件上定义复合唯一性约束。我已更新了答案举个例子。使用数组和序列化将联系人表值存储到同一个表中。因此不允许用户更改其个人详细信息?奇怪。并且不要将名称存储在用户表中-或者可以想象用户没有相应的联系人行?@草莓,用户表和联系人表中的名称不同..请阅读问题完全…我想存储每个用户的联系人详细信息请仔细提问。我们不知道user.name是什么