|
|
|
проектирование и связи многие-ко-многим
|
|||
|---|---|---|---|
|
#18+
всех приветствую, для начала ) есть задача: вести учет програмного обеспечения установленного у пользователей в организации ( чтоб там не поднимать в конце каждого месяца бумажки, не искать на какой отдел затраты списывать, чтоб оперативно можно было сказать сколько пользователей того или иного ПО, не нужно ли закупать новые лицензии и тд ) уже имеются следующие таблицы: USERS (id_user,lastname,firstname,initials,department,otdel,dolzhnost) DEPARTMENT (id_department,department) OTDEL (id_otdel,otdel) DOLZHNOST (id_dolzhnost,dolzhnost) отталкиваясь от следующей таблицы | Ф | И | О | деп. | отдел | должн. | уст. ПО | ( можно еще - | разраб. | краткое опис. |) создадим еще таблицы: ПО (id, nazvanie) , Разраб (id, razrab) проблема в том, что все связи 1-ко-многим, а вот между таблицами USERS и ПО связи многие-ко-многим , тут ничего не поделаешь и придется связывать их так фио1 | по1 фио1 | по3 фио2 | по2 фио2 | по3 фио3 | по1 или все таки есть варианты? есть еще вариант завязать ПО с позьзователями через таблицу Департамент, т.к ПО для разных департаментов специфично, и в итоге мы будем иметь в связующей таблице не (фио*по) строк а (департамент*по) строк, но тут возникают проблемы в том случае если какойто програмный продук не установлен у сотрудника департамента (а у всех стоит), или есть то, чего у других нет, и еще если завязывать в кучу к ПО информационные ресурсы предприятия (типа эл.документооборот, правовые системы, инет) то здесь уже играют роль не департаменты а группы доступа, и как бы не пришлось создавать одтельные таблицы ПО и Инф.Ресурсы, и еще по таблице для связки их с таблицей пользователей. задайте пожалуйста направление мыслям! заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 15:29 |
|
||
|
проектирование и связи многие-ко-многим
|
|||
|---|---|---|---|
|
#18+
1. Должность не отдельна сама по себе она четко привязана к отделу. 2. Отдел не отделен от департамента а входит в него (вообще можно слить отделы и департаменты в иерархию) 3. завязать ПО c должностью конкретного отдела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 19:54 |
|
||
|
проектирование и связи многие-ко-многим
|
|||
|---|---|---|---|
|
#18+
и лучше организовывать нормальное присвоение имен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 19:55 |
|
||
|
проектирование и связи многие-ко-многим
|
|||
|---|---|---|---|
|
#18+
BrigadeFuhrer 1. Должность не отдельна сама по себе она четко привязана к отделу. это конечно должно быть так, но как быть если одна должность может быть в разных отделах? еще связующая таблица? BrigadeFuhrer 2. Отдел не отделен от департамента а входит в него (вообще можно слить отделы и департаменты в иерархию) верное замечание, нужно будет поправить BrigadeFuhrer 3. завязать ПО c должностью конкретного отдела. очень интересная идея, нужно обдумать ну а связи многие-ко-многим можно разрулить только через связующие таблицы если нельзя представить в виде нескольких связей 1-ко-многим ? заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2008, 06:54 |
|
||
|
проектирование и связи многие-ко-многим
|
|||
|---|---|---|---|
|
#18+
автор это конечно должно быть так, но как быть если одна должность может быть в разных отделах? еще связующая таблица? поясню, при проектирование стоит задача выделить первичный ключ сущности (не суррогатный id). например человека однозначно можно определить по серии и номеру пасспорта, но номер это не сам человек. вслучае с должностью: например должность "ассистент". ассистент в отделе маркетинга имеет другой функционал, в отличии от ассистента в парикмахерской, поэтому имя по которому вы хотоите однозначно определить должность, не является первичным ключом. В этом случае первичный ключ должности - составной - это название должности в сочетании с первичным ключом отдела. А точнее не дожность, а "должность в отделе", соостветствено поля в таблице должность id(суррогатный), id_otdel, name (название), в таб. будет 2 ключа, собственно первичный и уникальный AK по (id_otdel, name) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2008, 11:37 |
|
||
|
проектирование и связи многие-ко-многим
|
|||
|---|---|---|---|
|
#18+
Единстввенная связь ММ будет ПО c должностью отделе, тоесть должноть в отделе -> по в отделе <- ПО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2008, 11:44 |
|
||
|
проектирование и связи многие-ко-многим
|
|||
|---|---|---|---|
|
#18+
забыл что еще бывают составные ключи, надо учиться ими пользоваться, однако.. автор(вообще можно слить отделы и департаменты в иерархию) уважаемый BrigadeFuhrer , что подразумеваете под этой фразой? то же что и в случае должность в отделе? заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2008, 13:12 |
|
||
|
проектирование и связи многие-ко-многим
|
|||
|---|---|---|---|
|
#18+
Новый вопрос: хороший способ так хранить штатное расписание? Департаменты ID_dep | name_dep |(описание) Отделы ID_otdel | ID_dep | name_otdel |(описание) Должности ID_dolzhn | ID_otdel | name_dolzhn |(описание) в принципе можно точно сказать какие отделы и должности есть в департаменте, при создании нового отдела или введении новой должности точно можно соотнести с тем или иным департаментом. тогда возможно таблица сотрудников может выглядеть не так Сотрудники id_user | lastname | firstname | initials | department | otdel | dolzhnost | (доп.инф типа мейл,тел.) а вместо | department | otdel | dolzhnost | хранить ID_dolzhn и точно можно сказать где сотрудник работает, т.е таблица пользователей будет выглядеть так: Сотрудники id_user | lastname | firstname | initials | ID_dolzhn | (доп.инф типа мейл,тел.) ?? еще вопрос как лучше решить проблему когда у людей совпадают и фамилии, имена и отчества? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2008, 14:20 |
|
||
|
проектирование и связи многие-ко-многим
|
|||
|---|---|---|---|
|
#18+
BrigadeFuhrer...например человека однозначно можно определить по серии и номеру пасспорта...даже по закону человек в течении жизни меняет у нас паспорт 3 раза в жизни. Более того, закон не возбраняет поменять паспорт в любой угодный момент. ИНН более подходит для таких целей, хотя и с ним нет 100% уверенности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2008, 15:00 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35311148&tid=1543872]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
7ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 361ms |

| 0 / 0 |
