powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
11 сообщений из 11, страница 1 из 1
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
    #39649625
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток форумчане,
Делаю документооборот между несколькими отделами (я их уже связал).
Есть таблицы с сотрудниками (и их «ID»), и отделами (и их «ID»). В каждом документе/таблице учавствует сотрудник и отдел.

Вопрос:
В каком виде лучше(правильнее) хранить в каждом документе/таблице сотрудника и отдел? (В виде ID на соответствующие классификаторы или в явном виде (тип поля string))? В плане возможном изменении и ФИО сотрудника и наименования отдела

Ну как бы ФИО сотрудника, в процессе работы не должно меняться (хотя женщины могут менять фамилии) их можно хранить в виде ID.
А вот отделы могут со временем изменять названия, и тут как бы уже нужно в каждый документ вставлять явно «название» отдела. Т.е. когда документ попадает в архив, у него желательно сохранить старые данные, т.е. данные которые были актуальны еще до попадания в архив.

У кого какие предложения будут?
...
Рейтинг: 0 / 0
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
    #39649627
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы избежать избыточность данных
...
Рейтинг: 0 / 0
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
    #39649655
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008Хотелось бы избежать избыточность данных

Вам нужно хранить не только новое значение, но и старое + дата изменения.
Так что удачи!

А так.
Суррогатный ключ - удобен, т.к. позволяет не тянуть за собой кучу естественных ключей в таблицы.
Да по скорости выборки они выигрывают, по сравнению со строками.
...
Рейтинг: 0 / 0
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
    #39649663
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 сотрудника, а уж по дате документа получать его ФИО и название отдела в котором он работал в то время.
...
Рейтинг: 0 / 0
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
    #39649680
Фотография alex_p_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008ФИО сотрудника, в процессе работы не должно меняться
Это почему вдруг? И почему, во-Вашему, фамилию могут менять только женщины? Вот захочу я завтра поменять фамилию, например, на Эйнштейн - кто мне запретит?
...
Рейтинг: 0 / 0
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
    #39649807
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008Вопрос:
В каком виде лучше(правильнее) хранить в каждом документе/таблице сотрудника и отдел? (В виде ID на соответствующие классификаторы или в явном виде (тип поля string))? В плане возможном изменении и ФИО сотрудника и наименования отдела

В документах исключительно ID, если это сотрудники вашей организации. String имеет смысл хранить только когда там может кто угодно. Например через интернет могут написать отзыв, регистрировать пользователя нет смысла, так как дальше никакой работы с ним не будет, поэтому string.

Ну а данные, разумеется, меняются, поэтому нужно хранить историю изменений (как выше предложено) с "датой с - по" и через дату внесения изменений (или даты создания) в историю документа и сам документ и находить актуальное на тот момент значение атрибута.
...
Рейтинг: 0 / 0
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
    #39650107
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Например я думал, что например:

В классификаторе есть отдел "РР-1", с ним сохраняются документы, попадают в архив - все замечательно.

В классификаторе отделов убираю возможность редактировать название отдела, а также скрываю кнопку "удалить".

Если допустим отдел хотят переименовать в "ММ-2" (на здоровье). - я просто добавляю строку с новым отделом "ММ-2". И тогда документы начинают сохраняться с новым ID.

Конечно придется в классификатор отделов добавить поле, по которому я буду видеть, что эти отделы с разными ID, это один и тот же отдел. Ну и конечно, добавил бы поле "архивный" (статус) - чтоб отдел с старым названием не отсвечивал.

Впринципе с изменением ФИО людей, тоже такая история...
Как-то так.
...
Рейтинг: 0 / 0
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
    #39650132
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008Если допустим отдел хотят переименовать в "ММ-2" (на здоровье). - я просто добавляю строку с новым отделом "ММ-2". И тогда документы начинают сохраняться с новым ID.

Конечно придется в классификатор отделов добавить поле, по которому я буду видеть, что эти отделы с разными ID, это один и тот же отдел. Ну и конечно, добавил бы поле "архивный" (статус) - чтоб отдел с старым названием не отсвечивал.

Впринципе с изменением ФИО людей, тоже такая история...

Месье знает толк в извращениях ;-)
Неправильно это- не делают так крутые проектировщики ;). Как потом вывести историю какие документы отдел согласовывал?
...
Рейтинг: 0 / 0
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
    #39650142
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serguei.... Как потом вывести историю какие документы отдел согласовывал?
по колонке "отдел предок". (залезть в классификатор, выбрать все ID с оиднаковым ID "отдел предок"и потом выбрать все документы)
...
Рейтинг: 0 / 0
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
    #39650147
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008по колонке "отдел предок". (залезть в классификатор, выбрать все ID с оиднаковым ID "отдел предок"и потом выбрать все документы)

Ну что же - в путь тогда! Я так понимаю, переубеждать смысла не имеет )
...
Рейтинг: 0 / 0
БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
    #39655235
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008, а чего вы с этим архивом планировали делать?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / БД+документооборот (проектирование), способ хранения сотрудников и наименование их отделов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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