|
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
|
|||
---|---|---|---|
#18+
Доброе время суток форумчане, Делаю документооборот между несколькими отделами (я их уже связал). Есть таблицы с сотрудниками (и их «ID»), и отделами (и их «ID»). В каждом документе/таблице учавствует сотрудник и отдел. Вопрос: В каком виде лучше(правильнее) хранить в каждом документе/таблице сотрудника и отдел? (В виде ID на соответствующие классификаторы или в явном виде (тип поля string))? В плане возможном изменении и ФИО сотрудника и наименования отдела … Ну как бы ФИО сотрудника, в процессе работы не должно меняться (хотя женщины могут менять фамилии) их можно хранить в виде ID. А вот отделы могут со временем изменять названия, и тут как бы уже нужно в каждый документ вставлять явно «название» отдела. Т.е. когда документ попадает в архив, у него желательно сохранить старые данные, т.е. данные которые были актуальны еще до попадания в архив. У кого какие предложения будут? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2018, 00:43 |
|
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
|
|||
---|---|---|---|
#18+
Хотелось бы избежать избыточность данных ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2018, 00:47 |
|
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
|
|||
---|---|---|---|
#18+
Sergey-2008Хотелось бы избежать избыточность данных Вам нужно хранить не только новое значение, но и старое + дата изменения. Так что удачи! А так. Суррогатный ключ - удобен, т.к. позволяет не тянуть за собой кучу естественных ключей в таблицы. Да по скорости выборки они выигрывают, по сравнению со строками. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2018, 05:59 |
|
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
|
|||
---|---|---|---|
#18+
Sergey-2008, согласен с mad_nazgul. Нужна таблица с историей изменений. Как структуры отделов и ФИО пользователей, так и история переходов пользователя из отдела в отдел Приблизительно так: Departs (ID, Name, DateCreate, DateDisband, PreviousDeportID, ...) Employee (ID, Sex, Birthday, ...) EmployeeParamsHistory (EmployeeID, ParamName, ParamValue, DateStart, DateFinish) Employee2Departs(EmployeeID, DepartID, DateStart, DateFinish) Document(ID, ..., DocumentDate, EmployeeID) то есть в документе достаточно хранить только ID сотрудника, а уж по дате документа получать его ФИО и название отдела в котором он работал в то время. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2018, 07:31 |
|
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
|
|||
---|---|---|---|
#18+
Sergey-2008ФИО сотрудника, в процессе работы не должно меняться Это почему вдруг? И почему, во-Вашему, фамилию могут менять только женщины? Вот захочу я завтра поменять фамилию, например, на Эйнштейн - кто мне запретит? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2018, 08:54 |
|
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
|
|||
---|---|---|---|
#18+
Sergey-2008Вопрос: В каком виде лучше(правильнее) хранить в каждом документе/таблице сотрудника и отдел? (В виде ID на соответствующие классификаторы или в явном виде (тип поля string))? В плане возможном изменении и ФИО сотрудника и наименования отдела В документах исключительно ID, если это сотрудники вашей организации. String имеет смысл хранить только когда там может кто угодно. Например через интернет могут написать отзыв, регистрировать пользователя нет смысла, так как дальше никакой работы с ним не будет, поэтому string. Ну а данные, разумеется, меняются, поэтому нужно хранить историю изменений (как выше предложено) с "датой с - по" и через дату внесения изменений (или даты создания) в историю документа и сам документ и находить актуальное на тот момент значение атрибута. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2018, 12:09 |
|
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
|
|||
---|---|---|---|
#18+
Например я думал, что например: В классификаторе есть отдел "РР-1", с ним сохраняются документы, попадают в архив - все замечательно. В классификаторе отделов убираю возможность редактировать название отдела, а также скрываю кнопку "удалить". Если допустим отдел хотят переименовать в "ММ-2" (на здоровье). - я просто добавляю строку с новым отделом "ММ-2". И тогда документы начинают сохраняться с новым ID. Конечно придется в классификатор отделов добавить поле, по которому я буду видеть, что эти отделы с разными ID, это один и тот же отдел. Ну и конечно, добавил бы поле "архивный" (статус) - чтоб отдел с старым названием не отсвечивал. Впринципе с изменением ФИО людей, тоже такая история... Как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2018, 18:44 |
|
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
|
|||
---|---|---|---|
#18+
Sergey-2008Если допустим отдел хотят переименовать в "ММ-2" (на здоровье). - я просто добавляю строку с новым отделом "ММ-2". И тогда документы начинают сохраняться с новым ID. Конечно придется в классификатор отделов добавить поле, по которому я буду видеть, что эти отделы с разными ID, это один и тот же отдел. Ну и конечно, добавил бы поле "архивный" (статус) - чтоб отдел с старым названием не отсвечивал. Впринципе с изменением ФИО людей, тоже такая история... Месье знает толк в извращениях ;-) Неправильно это- не делают так крутые проектировщики ;). Как потом вывести историю какие документы отдел согласовывал? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2018, 19:50 |
|
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
|
|||
---|---|---|---|
#18+
Serguei.... Как потом вывести историю какие документы отдел согласовывал? по колонке "отдел предок". (залезть в классификатор, выбрать все ID с оиднаковым ID "отдел предок"и потом выбрать все документы) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2018, 20:09 |
|
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
|
|||
---|---|---|---|
#18+
Sergey-2008по колонке "отдел предок". (залезть в классификатор, выбрать все ID с оиднаковым ID "отдел предок"и потом выбрать все документы) Ну что же - в путь тогда! Я так понимаю, переубеждать смысла не имеет ) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2018, 20:23 |
|
|
start [/forum/topic.php?fid=32&msg=39650107&tid=1540037]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 237ms |
total: | 487ms |
0 / 0 |