映射一对多关系时是否应该有一个单独的表?

Sho*_*ibi 6 mysql sql

在性能和可伸缩性方面,哪个是在MySQL中进行一对多映射的更好方法.

  • 使用单独的列但坚持2个表:

    (人):身份证,姓名

    (电话):id,number,type,person_id

  • 使用单独的表格:

    (人):身份证,姓名

    (电话):身份证号码,号码,类型

    (person_phone):id,person_id,phone_id

Dan*_*man 14

对此只有一个正确的答案,这是第一个.

您的第二个想法是如何模拟多对多关系,而不是一对多关系.

  • 这是"BS"?嗯,我的妻子和我共用同一部手机多年了. (7认同)
  • 当我的办公室刚开业时,4-6 名开发人员分配一部共用电话是很常见的。程序员到底需要与人们交谈以获得权利吗?;) (2认同)

Edd*_*die 5

在性能方面,避免连接总是更便宜,这会增加要查询的行数的多重性.

只要一个电话只能由一个员工使用(真正的一对多),第一个选项最好.


Mih*_*yan 5

第一个更好.

  1. 更好的性能.
  2. 存储空间更少.
  3. 容易明白.

PS也许你甚至不需要id电话,(number, type, person_id)就够了.