@h1tan

Как построить связь сущностей в базе данных «Фрилансер -> Заказчик»?

Подскажите, пожалуйста, как мне правильно связать сущности в БД при след. условиях:
- Есть пользователь (разработчик - фрилансер) (отдельная сущность в БД - 'User')
Этот пользователь при добавлении выполненного проекта может указать данные заказчика.
Собственно и вопрос, как хранить сущность этого заказчика ? У пользователя должен быть ключ в виде массива заказчиков или сущность всех заказчиков должна быть отдельной и независимой и привязываться по id к пользователю, который его добавил к себе ?
В чем подвох - заказчик может же совпадать у нескольких исполнителей, поэтому каждому исполнителю добавлять одни и те же данные глупо.

Любой информации и литературе буду рад.
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
@nrgian
1) Если вы не можете их однозначно и автоматически идентифицировать при добавлении, то дубли будут, смиритесь.

2) Иначе это классические для реляционных СУБД "многие-ко-многим":
Реализуется через отдельную таблицу для связей как-то так:

Table Customer
ID OtherData

Table Worker
ID OtherData

Table Relationship
IDCustomer IDWorker


Это позволяет заказчику быть связанными с многими исполнителями.
И исполнителю быть связанным с многими заказчиками.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы