powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / БД документооборота отдела. Особенности проектирования таблиц
25 сообщений из 31, страница 1 из 2
БД документооборота отдела. Особенности проектирования таблиц
    #39028012
Indian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Нужно сделать БД документооборота. Документы существуют нескольких типов. Например:

1. Входящие письма
2. Исходящие письма
3. Входящие служебки
4. Исходящие служебки
5. Приказы / Указания
6. Другие документы (просто попали в отдел на согласование).

Письма от служебок отличаются тем, что служебка подписывается начальником отдела и отправляется начальнику другого отдела. А письма подписываются руководителями предприятий и направляются на другое предприятие, но готовят письма сотрудники отдела и входящие письма попадают в отдел в конечном итоге.

Документы разных типов имеют различные наборы полей. Но некоторые поля в документах повторяются.
Подскажите, пожалуйста как лучше сделать?:

- одну таблицу Документы со всеми возможными полями и просто оставлять в документе ненужные поля пустые при регистрации
- свою таблицу Документы для каждого типа
- или таблицу Документы объединяющие два типа. Например Таблица Письма объединяет входящие и исходящие письма.

Какой из вариантов предпочтительней для более удобной работы с БД? Может быть есть еще аврианты?
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028038
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Indian - одну таблицу Документы со всеми возможными полями и просто оставлять в документе ненужные поля пустые при регистрацииСамый простой, быстрый и негибкий вариант (быстро, дешево, сердито). Накладно добавлять новые типы документов. Подходит если документы скорее одинаковые, чем разные.
Indian - свою таблицу Документы для каждого типаСамый гордый и независимый вариант. Но СУБД не сможет обеспечить уникальность уникальным полям, поиск будет идти последовательно для каждой таблицы. Подходит если документы скорее разные, чем одинаковые.
Indian - или таблицу Документы объединяющие два типа. Например Таблица Письма объединяет входящие и исходящие письма.Попытка взять лучшее из предыдущих вариантов. В худшем случае будет совмещением недостатков предыдущих вариантов.

Indian Какой из вариантов предпочтительней для более удобной работы с БД?Счас, только кофе допью, чтобы на гуще погадать.
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028144
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Indian,

почему бы не подумать в сторону создания одной основной таблицы по документам, которая будет содержать все общие параметры всех типов документов, включая саму бумажку (скан) и ее текст + включая тип документа.
(т.е. что-то типа: ИД + дата создания в системе + откуда поступило + внутренний номер + тип документа)

Для каждого типа документов накидать отдельные таблицы с характерными для него атрибутами.

Итого: у вас будет сквозная нумерация по всем документам.
Удобная навигация/статистика в разрезе всех типов документов (без детализации по специфичным параметрам).

Логика же обработки каждого типа - будет уникальна, соответственно она будет предусматривать обращение к конкретным детализированным таблицам.

Если же потребуется фильтрация документов определенного типа по специфичному параметру - вам нет необходимости "перерывать" весь свой архив - достаточно лишь "напрячь" соответствующую вспомогательную таблицу.
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028177
Indian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mikle83,

авторДля каждого типа документов накидать отдельные таблицы с характерными для него атрибутами.

То есть, просто создать таблицы, перечисляющие все атрибуты каждого типа документов? Или только атрибуты уникальные для каждого типа документов?

А как мне это поможет в дальнейшей обработке? Я просто не очень понимаю.

Мы пришли к тому, что есть одна таблица Документы, содержащая все возможные атрибуты + тип документа (я забыл в первом сообщение про это написать). При регистрации в базе нового документа в первую очередь выбирается тип документа и тогда необходимо заполнить только те атрибуты, которые необходимы для этого типа документов. Остальные просто не выводятся.
Объясните, пожалуйста, про дополнительные таблицы подробнее.
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028180
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IndianМы пришли к тому, что есть одна таблица Документы, содержащая все возможные
атрибуты + тип документа (я забыл в первом сообщение про это написать).
А Вы уверены, что каждый атрибут в списке был внесён туда обоснованно?.. Что Вы
собираетесь делать с этими атрибутами? Кто и как будет их заполнять? Кто, как и зачем
будет их использовать?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028186
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Indian Объясните, пожалуйста, про дополнительные таблицы подробнее. Это ваш третий вариант. Родительская таблица содержит общие поля и поля для поиска, а уникальные поля каждого типа документов хранятся в дополнительной таблице связанной 1:1 (скорее 0:1) с родительской.
Решение проектировщика - какое поле в какую таблицу определить.
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028214
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Indian,

А чем не устраивает взять уже готовую систему и по минимуму допилить под себя? Их собственно масса, как платных так и свободных.
Надоели изобретатели велосипедов. )
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028308
Indian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Документам не присвоены атрибуты вроде "Размер копыта единорога".
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028310
Indian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой БобрIndian,

А чем не устраивает взять уже готовую систему и по минимуму допилить под себя? Их собственно масса, как платных так и свободных.
Надоели изобретатели велосипедов. )

Тоже вариант. Преимущества этого варианта - быстрый результат. Недостаток - я так и не пойму как же правильно организовать таблицы :)
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028316
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрIndian,

А чем не устраивает взять уже готовую систему и по минимуму допилить под себя? Их собственно масса, как платных так и свободных.
Надоели изобретатели велосипедов. )Это лоскутная автоматизация. Наверняка у ТС уже есть некая система, а сабж - новый модуль в ней.
Если есть возможность расширять свою систему - надо это делать. Сторонняя система содержит 70% ненужного ф-ла и как правило плохо документирована (речь не про морду, а про внутренности). Двусторонний обмен (или даже обмены) это отдельный нудный гемор.

зы: Задача не такая сложная, чтоб брать сторонюю систему.
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028343
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IndianMikle83,
авторДля каждого типа документов накидать отдельные таблицы с характерными для него атрибутами.
То есть, просто создать таблицы, перечисляющие все атрибуты каждого типа документов? Или только атрибуты уникальные для каждого типа документов?


Хм. какое конкретно из слов "для каждого типа документов - отдельные таблицы с характерными для него (типа) атрибутами" не понятно?

IndianА как мне это поможет в дальнейшей обработке? Я просто не очень понимаю.


Вы же не будете на клиенте под объект "Документ" создавать один класс, содержащий атрибуты всех возможных документов, но заполнять только те, которые нужны для конкретного типа.

На UI, вряд ли (я надеюсь), вы будете отображать документ в одной единой форме с набором "компонент" под все возможные атрибуты всех возможных типов, только управляя свойством Visible для компонентов...

Так почему вы "тащите" этот подход в базу?
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028389
Indian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mikle83IndianMikle83,
пропущено...

То есть, просто создать таблицы, перечисляющие все атрибуты каждого типа документов? Или только атрибуты уникальные для каждого типа документов?


Хм. какое конкретно из слов "для каждого типа документов - отдельные таблицы с характерными для него (типа) атрибутами" не понятно?

Эти таблицы должны содержать только перечень атрибутов класса или документы класса?
Хотя, если у нас есть единая таблица Документы со всеми атрибутами, то документы будут хранится в ней. А при регистрации нового документа после выбора типа документа клиент обращается к таблице с атрибутами класса и создает объект, содержащий только необходимые атрибуты? Так?
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028408
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IndianЭти таблицы должны содержать только перечень атрибутов класса или документы класса?
Хотя, если у нас есть единая таблица Документы со всеми атрибутами, то документы будут хранится в ней. А при регистрации нового документа после выбора типа документа клиент обращается к таблице с атрибутами класса и создает объект, содержащий только необходимые атрибуты? Так?

Именно так. Все базовые атрибуты (к примеру, дата поступления документа, откуда, порядковый номер и т.п., равно как и сам документ) - лежат в основной таблице. Все же специфичное для конкретного типа документа - лежит в отдельной таблице.

Я бы на вашем месте начал с проработки каждого типа документа.
Пропишите все атрибуты для каждого типа документов независимо.

Затем посмотрите на все получившиеся списки атрибутов - и найдите общие - их можно выделить в общую таблицу.
Все остальное - разнесите по дополнительным таблицам.
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028422
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83посмотрите на все получившиеся списки атрибутов - и найдите общие - их можно
выделить в общую таблицу.
Все остальное - разнесите по дополнительным таблицам.
А свалить все-все атрибуты в XML-поле главной таблицы может помешать что?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028570
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IndianЗдравствуйте!
Нужно сделать БД документооборота. Документы существуют нескольких типов. Например:

1. Входящие письма
2. Исходящие письма
3. Входящие служебки
4. Исходящие служебки
5. Приказы / Указания
6. Другие документы (просто попали в отдел на согласование).

Письма от служебок отличаются тем, что служебка подписывается начальником отдела и отправляется начальнику другого отдела. А письма подписываются руководителями предприятий и направляются на другое предприятие, но готовят письма сотрудники отдела и входящие письма попадают в отдел в конечном итоге.

Документы разных типов имеют различные наборы полей. Но некоторые поля в документах повторяются.
Подскажите, пожалуйста как лучше сделать?:

- одну таблицу Документы со всеми возможными полями и просто оставлять в документе ненужные поля пустые при регистрации
- свою таблицу Документы для каждого типа
- или таблицу Документы объединяющие два типа. Например Таблица Письма объединяет входящие и исходящие письма.

Какой из вариантов предпочтительней для более удобной работы с БД? Может быть есть еще аврианты?
третий вариант имхо будет норм.
Самый экстремальный кстати вариант - не первый, а вообще eav где можно документ с произвольным набором полей сделать.
Но это вам 100% не надо.
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028573
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMikle83посмотрите на все получившиеся списки атрибутов - и найдите общие - их можно
выделить в общую таблицу.
Все остальное - разнесите по дополнительным таблицам.
А свалить все-все атрибуты в XML-поле главной таблицы может помешать что?

здравый смысл
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028657
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Durakздравый смысл
Или желание замаксимайзить геморрой себе и своим пользователям.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028668
Indian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
А свалить все-все атрибуты в XML-поле главной таблицы может помешать что?

Скажите, а поиск по этим атрибутам можно будет потом вести?
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028677
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Indianа поиск по этим атрибутам можно будет потом вести?
Можно, разрешаю.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028935
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83 Затем посмотрите на все получившиеся списки атрибутов - и найдите общие - их можно выделить в общую таблицу. Кроме общих в таблице должны быть поля для поиска (даже если они не общие, с null для неактуальных типов докуметнов по первому варианту),
ибо искать по одной таблице куда эффективнее чем по многим.

Dimitry Sibiryakov А свалить все-все атрибуты в XML-поле главной таблицы может помешать что?Накладно это работать с XML. Как из пушки по воробьям.

Indian Скажите, а поиск по этим атрибутам можно будет потом вести? https://en.wikipedia.org/wiki/XQuery
Но опять же накладно - XML распарси, проиндексируй и т.д. Пусть это прозрачно для вас, но чудес не бывает - производительность просядет.
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028946
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257производительность просядет.
Ты всерьёз думаешь, что отдел сможет породить столько документов, что кто-то
заметит просадку производительности?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028959
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSERG1257производительность просядет.
Ты всерьёз думаешь, что отдел сможет породить столько документов, что кто-то
заметит просадку производительности?..

нафига тогда это все. Общую папочку на файл сервере завести - вот тебе и система документооборота!!!
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028966
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Durakнафига тогда это все
Именно этот вопрос, только в более конкретных терминах я задал ТСу в начале топика. Он
вместо ответа начал бредить про единорогов. В морг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
БД документооборота отдела. Особенности проектирования таблиц
    #39028967
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan DurakDimitry Sibiryakovпропущено...

Ты всерьёз думаешь, что отдел сможет породить столько документов, что кто-то
заметит просадку производительности?..

нафига тогда это все. Общую папочку на файл сервере завести - вот тебе и система документооборота!!!

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


IndianПодскажите, пожалуйста как лучше сделать?:
Я бы для начала посмотрел какие именно общие атрибуты у документов разного типа. Есть ли что то общее для всех?
На мой взгляд общие атрибуты: номер дока, дата документа, тема,автор, подписант.
Я бы сделал центральную табличку с такими атрибутами, а всю специфику по каждому типу документов разнес бы по "звезде".
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / БД документооборота отдела. Особенности проектирования таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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