当前位置: 首页 > 面试题库 >

如何在我的sql数据库中存储一对多关系?(MySQL)

宇文卓
2023-03-14
问题内容

我正在建立一个网站,我需要在数据库中存储随机数的数据。

例如:用户john可能有一个电话号码,而jack可能有3。

我需要能够为每个用户存储无限数量的值。

我在任何地方都找不到方法,希望您能帮助我!:)

我是关系数据库的新手。


问题答案:

您创建一个单独的电话号码表(即1:M关系)。

create table `users` (
  `id` int unsigned not null auto_increment,
  `name` varchar(100) not null,
  primary key(`id`)
);

create table `phone_numbers` (
  `id` int unsigned not null auto_increment,
  `user_id` int unsigned not null,
  `phone_number` varchar(25) not null,
  index pn_user_index(`user_id`),
  foreign key (`user_id`) references users(`id`) on delete cascade,
  primary key(`id`)
);

现在,您可以通过简单的连接轻松获得用户的电话号码;

select
  pn.`phone_number`
from
  `users` as u,
  `phone_numbers` as pn
where
  u.`name`='John'
  and
  pn.`user_id`=u.`id`


 类似资料:
  • 问题内容: 我想将分层的二维科学数据集存储在关系数据库(MySQL或SQLite)中。每个数据集都包含一个数值数据表,其中包含任意数量的列。另外,每个数据集可以具有一个或多个与其表的给定行关联的相同类型的子级。每个数据集通常具有1至100列和1至1.000.000行。数据库应该能够处理许多数据集(> 1000),并且数据的读/写应该相当快。 存储此类数据的最佳数据库模式将是什么?是否有一个“主”表

  • 问题内容: 在像mySQL这样的RDBMS数据库中处理多对多关系的最佳方法是什么? 尝试使用数据透视表来跟踪关系,但这会导致以下任一情况: 规范化被抛在后面 空或空的列 您采取了什么方法来支持多对多关系? 问题答案: 在 专门针对该关系 的 表 (有时称为 联结表 )中跟踪多对多关系。该表将该关系建模为指向相反方向的两个一对多关系。 然后,您可以使用联结表通过外键 通过它 联接 其他表 。

  • 嗨,我有一个角色表和一个权限表,它有多对多的关系。我已经创建了下面链接中提到的实体 https://www.baeldung.com/jpa-多对多 角色实体 权限实体 我已经为每个实体创建了JPA存储库,并且正在尝试将权限保存给一个角色。我在表中已经有了一组/列表的权限,我正在尝试将它们映射到某个角色。我正在尝试使用spring JPA存储库执行下面的代码。 在执行我得到的代码时 org.hib

  • 问题内容: 我已经阅读了许多有关 多维到单维 , 多维数据库 等的文章,但是所有答案都无济于事。我确实在Google上找到了很多文档,但是这些文档仅提供背景信息,而没有回答眼前的问题。 我有很多彼此相关的字符串。PHP脚本中需要它们。该结构是分层的。这是一个例子。 每个缩进在多维数组中都假定一个新级别。 目的是通过名称及其所有后代检索具有PHP的元素。例如,如果我查询A,我想接收一个包含的字符串数

  • 问题内容: 我怎么做? 现在,将不会使用IPv6,但是我需要设计应用程序以使其支持IPv6。有必要在MySQL数据库中存储IP地址和CIDR块(也是BGP NLRI,但这是另一回事)。我一直将INT用于IPv4 +将TINYINT用于masklen,但是IPv6是128位。 哪种方法最适合呢??用于二进制存储?用于文本存储?在专用桌子上? 你会推荐什么? 问题答案: 我不确定哪款MySQL 是 正

  • 问题内容: 如何在SQL数据库中存储HashMap?另外,您如何将HashMap从SQL数据库加载回HashMap实例? 好的,这就是我正在做的。我有一个数据库来存储我的游戏的玩家数据。它有一个包含用户名和密码的表。每个玩家都有一个存储其属性的HashMap。我需要将该HashMap及其各自的用户存储在数据库中。 问题答案: 您需要一个三列表 用户, 键, 值 然后看起来像 “用户1”,“属性1”