我有2个表用于联系人书籍应用程序
第一个(称为成员)包括全名和唯一ID 第二个(称为电话)包括ID(电话ID)和memberID(该电话所属的成员)和电话号码。
显示会员的电话号码。
我是否应该向表成员添加一个新字段以存储一系列电话ID,并在每次成员向其联系人簿添加或删除电话时更新它? 要打印通讯录,我将获取数组并查询电话表!
或
不将ID存储在members表中。然后查询memberID = XX
的查询哪一个更好更快?
答案 0 :(得分:1)
您的第二个选项更容易编程和排除故障。用它。
您的第一个选项在DBMS术语中称为“非规范化”。有时,使用非常大的表对数据库进行非规范化是有意义的,以加快速度。但是mySQL是一个很好的关系数据库,并且在你描述的情况下适用于规范化的表。
当您的应用程序增长并且您的电话号码表中有超过一亿行时,您可能会发现非规范化是有意义的。现在,它没有。