Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Many-to-many. Правильно ли? / 17 сообщений из 17, страница 1 из 1
04.09.2007, 22:52
    #34776022
pshik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
Есть таблицы:
Project
Company
Profession
Employee

В Проекте может быть много Компаний
В каждой Компании может быть много групп Профессий
В каждой Профессии много Работников
И каждый Работник может иметь несколько Профессий

Я создал смежные таблицы:
CompanyAssignment
ProfessionAssignment
EmployeeAssignment

в которых есть FK к обеим таблицам
Например:
CompanyAssignment
ComAssignID
CompanyID
ProjectID

тогда будет в:

ProfessionAssignment
ProfAssignID
ProfessionID
ComAssignID - FK к CompanyAssignment

и так далее

Это правильный подход?
Или есть другие варианты?

Спасибо
...
Рейтинг: 0 / 0
04.09.2007, 23:31
    #34776048
Baykin Ilya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
Во всех книгах, которые я читал по проектироованию БД делалось именно так......
На мой взгляд, сделано классически, а, значит, верно.

Вот только сейчас подумалось-при самых же обыкновенных запросах (например, какие в проекте задействованы работники мы будем соединять 3 и более таблиц!) я правильно подумал?

Но, повторюсь, другого варианта в книгах я не видел.
...
Рейтинг: 0 / 0
04.09.2007, 23:39
    #34776057
pshik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
Baykin Ilya
Вот только сейчас подумалось-при самых же обыкновенных запросах (например, какие в проекте задействованы работники мы будем соединять 3 и более таблиц!) я правильно подумал?

Да,это и смущает
Может нужно всё в одну смежную таблицу запихать?
Вот и думаю....
...
Рейтинг: 0 / 0
05.09.2007, 00:19
    #34776085
Baykin Ilya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
pshik Baykin Ilya
Вот только сейчас подумалось-при самых же обыкновенных запросах (например, какие в проекте задействованы работники мы будем соединять 3 и более таблиц!) я правильно подумал?

Да,это и смущает
Может нужно всё в одну смежную таблицу запихать?
Вот и думаю....

Нет, конечно! у вас же обычное приложение, а не Хранилище Данных с OLAP кубами и агрегированными и денормализованными данными и таблицами!
если вы запихнете все в 1 таблицу (грубо говоря), то у вас будем очень много (ПОЧТИ) повторяющихся записей.... представили?ну типа:
Проект А-программер-Иванов,
Проект А-аналитик-Петров и
Проект А -.......
Проект А -.......
Проект А -.......
............................. т д. А это нарушает какое-то правило нормализации (требование ко 2 вроде НФ)

К утру гуру подтянутся-подискутируем еще!
...
Рейтинг: 0 / 0
05.09.2007, 06:29
    #34776168
mir
mir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
pshikВ каждой Компании может быть много групп Профессий А есть ли вообще нужда привязывать профессии к компаниям? Может, речь идёт о должностях?
...
Рейтинг: 0 / 0
05.09.2007, 10:03
    #34776471
мод
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
pshikИли есть другие варианты?
1. T1:T2 как 1:n -> ссылка из T2 на T1
2. T1:T2 как m:n -> перекрестная таблица T1-T2
других вариантов нет
...
Рейтинг: 0 / 0
05.09.2007, 10:14
    #34776507
proposed amendment
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
pshik

Это правильный подход?
Или есть другие варианты?



подход не правильный
...
Рейтинг: 0 / 0
05.09.2007, 18:22
    #34778982
pshik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
proposed amendment pshik

Это правильный подход?
Или есть другие варианты?



подход не правильный

И что? Как же надо?
...
Рейтинг: 0 / 0
05.09.2007, 18:23
    #34778990
pshik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
mir pshikВ каждой Компании может быть много групп Профессий А есть ли вообще нужда привязывать профессии к компаниям? Может, речь идёт о должностях?

Я говорю о группах профессий:
Сварщики
Разряд 1
Разряд 2
Разряд 3
Разряд 4 ....
...
Рейтинг: 0 / 0
06.09.2007, 07:17
    #34779670
mir
mir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
pshik mir pshikВ каждой Компании может быть много групп Профессий А есть ли вообще нужда привязывать профессии к компаниям? Может, речь идёт о должностях?

Я говорю о группах профессий:
Сварщики
Разряд 1
Разряд 2
Разряд 3
Разряд 4 ....Дык, я и говорю, зачем их привязывать к компании? Справочник профессий сами по себе, компании сами по себе. К компании привязано только штатное расписание, то есть в итоге список имеющихся должностей. Для должностей нужный определенные профессии, да, но это уже другой вопрос.
...
Рейтинг: 0 / 0
06.09.2007, 10:41
    #34780034
proposed amendment
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
pshik proposed amendment pshik

Это правильный подход?
Или есть другие варианты?



подход не правильный

И что? Как же надо?

есть разница между профессией и должностью

профессия атрибут персоны
должность атрибут сотрудника
...
Рейтинг: 0 / 0
06.09.2007, 14:52
    #34781577
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
Добавить таблицу Person.

и слегка видоизменить:
В Проекте может быть много Компаний
В каждой Компании может быть много групп Профессий
В каждой Профессии много Работников
И каждый Человек может несколько раз быть Работником

Итого:

Employee -- кто работает--> Person
Employee -- где работает--> Profession --> Company --> Project

Может действительно в задачке каждая компания имеет свой список профессий.
Кто сказал что это про кадровое агенство?
...
Рейтинг: 0 / 0
06.09.2007, 15:09
    #34781656
BULK INSERT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
ModelRКто сказал что это про кадровое агенство?

вообще ТЗ кривое - нет смысла гадать ИМХО
...
Рейтинг: 0 / 0
06.09.2007, 18:22
    #34782495
pshik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
BULK INSERT ModelRКто сказал что это про кадровое агенство?

вообще ТЗ кривое - нет смысла гадать ИМХО

Есть конечно справочник профессий,но в каждом проекте участвуют не все группы профессий,что имеются в справочнике.
Поэтому и создана промежуточная таблица.
Кроме того, в каждом проекте у одной и той же компании можут быть разный расклад.
...
Рейтинг: 0 / 0
06.09.2007, 18:29
    #34782510
pshik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
proposed amendment

есть разница между профессией и должностью

профессия атрибут персоны
должность атрибут сотрудника

И что у сварщика это разные вещи?
У него и профессия и должность -просто сварщик.

или профессия сварщик,а должность - сварщик 4 разряд?

Думаю это излишество в проектном управлении.
Достаточно групп профессий по разрядам и тарифы оплаты привязаны к ним.
...
Рейтинг: 0 / 0
06.09.2007, 18:54
    #34782585
proposed amendment
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
pshik
Думаю это излишество в проектном управлении.


иц ап ту ю, как говорится.

не знаю при чем тут проектное управление
...
Рейтинг: 0 / 0
06.09.2007, 19:24
    #34782649
pshik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Many-to-many. Правильно ли?
proposed amendment pshik
Думаю это излишество в проектном управлении.


иц ап ту ю, как говорится.

не знаю при чем тут проектное управление

база потому что для учёта затрат в проектах
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Many-to-many. Правильно ли? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]