ERM модель - троичные отношения со слабой сущностью - PullRequest
0 голосов
/ 20 сентября 2011

У меня простой дизайн базы данных. Он имеет сущности: User Place Review. По сути, пользователь может опубликовать место (местоположение какого-либо места), а пользователь может оставить отзыв. Прямо сейчас у меня есть троичные отношения между 3, чтобы иметь возможность опубликовать отзыв о месте пользователем.

Это как User ---- <post> ---- Review и Place ---- <post> ---- User

Итак, это 3 способа.

Прежде всего правильное использование? Как, я могу это сделать? Мне все равно, если это не лучший способ, я просто хочу знать, это законно?

Во-вторых, я сделал Review слабой сущностью, но как я могу сделать так, чтобы она принимала первичный ключ пользователя и первичный ключ мест? Если я сделаю его слабой сущностью, он автоматически примет оба их первичных идентификатора?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 20 сентября 2011

enter image description here

0 голосов
/ 20 сентября 2011

Прежде всего правильное использование? Как, я могу это сделать? Мне все равно, если это не лучший способ, я просто хочу знать, законно ли это?

Нет моим глазам, как я вижу, вы соединяете место с самим собой во 2-м отношении. Я предполагаю, что это опечатка, и вы имеете в виду User ---- <post> ---- Place.

Во-вторых, я сделал Review слабой сущностью, но как я могу сделать так, чтобы он брал первичный ключ пользователя и первичный ключ Places? Если я сделаю его слабой сущностью, он автоматически примет оба их первичных идентификатора?

В требовании отсутствует пара важных вещей, таких как:

  1. Сколько отзывов пользователь может разместить о месте?
  2. Может ли несколько пользователей публиковать в одном месте?
  3. Может ли несколько пользователей оставлять отзывы о том же месте?

и т. Д., Поэтому немного сложно дать точный ответ.

Один пример со следующими допущениями:

  1. Пользователь может опубликовать много мест
  2. Более одного пользователя могут публиковать в одном месте
  3. Пользователь может опубликовать только один отзыв за место

Вы можете создать это отношение:

User(m)--<post>--(n)Place
           |
           |
         Review

Если вы объясните немного больше, возможно, я мог бы привести вас к ожидаемому решению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...