Я создаю страницу приглашения, где пользователи могут войти в свою учетную запись электронной почты и импортировать контакты из своей адресной книги. Мой вопрос касается дизайна базы данных для этого. Я хочу сохранить все электронные письма для каждого приглашающего пользователя, чтобы при последующих посещениях приглашения им не приходилось входить в систему. Это также позволит мне давать рекомендации друзьям и т. Д.
Я думал о создании новой таблицы, называемой контактами, с полями userid, contantname, contactemail. Я понимаю, что у многих пользователей может быть один и тот же контакт, поэтому мне интересно, будет ли хорошо, чтобы дизайн базы данных сохранял имя контакта и контактную почту в отдельной таблице, или в этом случае можно оставить их в одной таблице.
Мне также любопытно узнать, как другие спроектировали весь поток приглашений. Например, в моем случае для каждого контакта, который уже существует в системе, я предложу пользователю следовать, а если контакт отсутствует в системе, я предложу пользователю пригласить их. Когда приглашенный пользователь регистрируется, пользователь и приглашенный пользователь будут автоматически следовать друг за другом, и запись будет удалена из базы контактов. В случае, если контакт существует для нескольких пользователей, как только этот контакт примет приглашение от одного пользователя, я отобразлю других пользователей в качестве рекомендаций для следования. Это звучит нормально, или есть лучший подход к этому?
Спасибо.