Мне нужно создать схему базы данных для контактов с менеджером пользователя. Я объясняю ...Как управлять контактным отношением в базе данных
У меня есть простой Пользователь таблица с первичным ключом (с именем Id).
У меня есть Контакт стол, имеющий два внешних ключа (SenderID для пользователя, ReceiverID для пользователя), составляющий первичный ключ.
Моя проблема заключается в том, что если пользователь А отправить контакт приглашение пользователю B, мы имеем следующую запись:
Контакт (A, B)
В этом случае мы можем иметь въездную контакт (B, A), аналогичный другой записи.
Как я могу управлять этим случаем?
Благодарим за помощь.
Благодарим вас за ответ. Я буду проверять отношения многих и многих. Тем не менее, я бы хотел избежать «дублированных» записей (Contact (A, B) и Contact (B, A)), но я не знаю, возможно ли это с ограничениями базы данных или если мне нужно иметь дело с ним непосредственно в мой исходный код приложения. – Devatoria
Если вы не хотите дублировать записи, вы можете иметь только одну запись для каждого контакта (A, B) или (B, A), а затем, когда вы хотите получить список контактов A или B, используйте 'WHERE user_id = xxx OR contact_id = xxx', но, возможно, такой запрос будет медленнее – Guillaume