我在MySQL中有一个表,它代表一个用户,应该能够将最多三个电话号码添加到他的帐户中。因此,当然没有电话号码,已经存在的应该能够再次注册。我使这三列都是唯一的,但问题是,你仍然可以输入数字2,其他人输入的数字是他的第一个数字。因此,我想知道,是否有SQL的可能性来确保一行与其他行也是唯一的,或者我需要通过查询来解决这个问题,如果已经有一个成员以编程方式使用了这个数字。
MemberID | 主要编号 | 第2号第3号 | |
---|---|---|---|
1 | 123 | 456 | 789 |
2 | 456 | 123 | 567
因此,Strawberry认为最好的解决方案是规范化表。由于每个成员都是1到n个数字,因此这些数字应该是自己的实体。
最终的解决方案是从成员表中删除数字字段,并创建一个新表,如下所示:
Member_Id(外键( | 优先级 | 编号|
---|---|---|
1 | 1 | 234 |