У нас есть сущность users
с атрибутами id
, name
. Как «реализовать» отношения между этими пользователями с помощью правил:
- пользователь может иметь отношения ex.
lover
, married
, engaged
с
другой пользователь
- дубликатов быть не должно (
Jack Anne
, Anne Jack
)
- пользователь не может иметь отношения с самим собой
- любое другое, что вы находите логичным
this is solely made up, just me learning db
Итак, я сделал эту диаграмму ER, синие линии - это то, что я установил на уникальный / альтернативный ключ
DB-Fiddle
- Это правильный подход или я все это неправильно соединил?
- Как решить эту обратную уникальность? В случае, если вы пропустили это, я мог бы разместить
Джек-Энн для влюбленных, и Энн-Джек для замужних, даже Джек-Джек (с идентификаторами). я
может использовать ограничения CHECK, чтобы они не были равны, или чтобы иметь один идентификатор (который
не будет работать с UUID). Но есть ли лучший способ? Является ли ответ на это,
сделать всю логику на входе при вставке?
- По мнению, я получаю правильные результаты, но можно ли это сделать
'лучше'? Я просто хочу показать
users_relationship
с
users.name
, rel_type.type
.
Спасибо, любые советы / предложения приветствуются!