【问题标题】:mysql database how to store contact datamysql数据库如何存储联系人数据
【发布时间】:2016-01-30 06:46:53
【问题描述】:

我想从手机中获取联系人 并存入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] 用户信息表

id | UserId | name | username |password

2] 联系人表

ContactId | Contact_Name | Contact_Phno |Contact_Email

3] User_Contact 表

UserId | ContactId

但是在这里,在 Contacts 表中,我怎样才能设法存储 sonia,preeti/lila 的联系信息?因为价值观不同。

【问题讨论】:

  • 使用数组和序列化将联系人表值存储到同一个表中。
  • 所以不允许用户更改个人信息?奇怪。
  • 并且不要在用户表中存储姓名 - 或者是否可以想象用户没有相应的联系人行?
  • @Strawberry,用户表和联系人表中的名称不同..请仔细阅读问题...我想存储每个用户的联系方式
  • 请谨慎提问。我们不知道 user.name 是什么

标签: mysql sql


【解决方案1】:

每个表只能有一个主键,但也许您定义了一个复合键(无法从问题中看出)?我建议将“id”作为主键并在 mobileNo 和电子邮件上添加唯一性约束。这种选择也可以很好地与您可能正在使用的大多数网络框架配合使用。

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

【讨论】:

  • 好的,但是我如何存储这些值?因为索尼娅和莉拉的 ph 号相同,但姓名和电子邮件不同..所以只有它们的一个值会存储...有什么办法存储它们的值?
  • 如果电话号码可以相同,为什么要在联系人表中声明它们为主键(根据定义它们是唯一的)?
  • 我认为 phNo 和电子邮件是唯一的。即我将其作为主键..那么,如果我将主键更改为唯一键,它会起作用吗?
  • 您可以将它们设为“组合主键”,但大多数人会建议将“id”设为主键,并简单地在电话号码和电子邮件上定义复合唯一性约束。我已经用一个例子更新了我的答案。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多