Я думаю, у меня возникнет проблема с этим дизайном, так как я не могу отобразить контакты со всеми их номерами в сетке для пользователя.Каково ваше предложение?
Вы можете сделать это с помощью простого запроса.
select c.contactid, c.contactname,
pt.typetitle,
pn.phoneno
from contact c
inner join phonenumber pn on pn.contactid = c.contactid
inner join phonetype pt on pt.phonetypeid = pn.phonetype
Для обеспечения целостности данных вам потребуются некоторые УНИКАЛЬНЫЕ ограничения в дополнение к вашим основнымКлючевые ограничения.На вашем месте я бы рассмотрел УНИКАЛЬНЫЕ ограничения на ContactName, TypeTitle и пару (ContactID, PhoneType).На самом деле, пара (ContactID, PhoneType), вероятно, является лучшим первичным ключом, чем PhoneID;рассмотрите возможность полного удаления PhoneID.