powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение и обработка объектов с изменяющимися наименованиями
42 сообщений из 42, показаны все 2 страниц
Хранение и обработка объектов с изменяющимися наименованиями
    #35323367
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Существует некое ООО "РУСИНВЕСТСТРОЙ", директор Пупкин Петр Петрович, его заместитель Гогидзе Гоги Вахович.
Хранится в БД допустим таблица:
org_tbl
Код: plaintext
1.
2.
3.
id_org  org_name
 1         ООО "РУСИНВЕСТСТРОЙ"
 2         ООО "НЕФТЬ"
Предположим изменяется название РУСИНВЕСТСТРОЯ на ИНВЕСТСТРОЙ-М. Пох, меняем поле org_name на ООО "ИНВЕСТСТРОЙ".
НО! Как же быть с ранее веденными данными? Получается во всех таблицах где будет хранится id_org этого инвестстроя название поменяется тоже? Как можно обеспечить хранение и старой и новой информации?
Читал про КЛАДР, там в общероссийском классификаторе эта проблема приемлемо не решена получается?
Неужели какой то разработанной методики?
мой подход пока такой:
id_org_classifier_tbl
Код: plaintext
1.
2.
id_org_class id_org_class_name id_org_class_descr
 1             Фирма Гоги         Это гогиевская фирма

id_org_tbl
Код: plaintext
1.
2.
3.
id_org id_org_class id_org_name               acts
 1          1            ООО "РУСИНВЕСТСТРОЙ"     нет
 2          1            ООО "ИНВЕСТСТРОЙ-М"      да

То есть инвест строю в таблице id_org_tbl будут соответствовать 2 записи, но у недействующей флаг acts будет false. Одинаковыми у них будут id_org_class, подцепляемые из таблицы id_org_classifier_tbl. А поле acts будет использоваться для всяких выпадающих списков.

Плюсы такого подходы для меня в том что название организации будет отображаться с сохранением истории, а для учета и подсчета будет использоваться id_org_class_id, которое будет сохраняться для разных наименований.
как то так.
Но может есть что то более правильное ?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35323438
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть более сложное - слияние и поглощение организаций, например.
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35323532
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-ЛюбительЕсть более сложное - слияние и поглощение организаций, например.
и-и-иии? существует ли какой то общий подход к этой проблеме?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35323608
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasssoid Программист-ЛюбительЕсть более сложное - слияние и поглощение организаций, например.
и-и-иии? существует ли какой то общий подход к этой проблеме?

Примерно также как у людей с паспортами, когда девушка замуж выходит и берет чужую фамилию. Пофиг как ты на мониторе в гриде ее обзавешь. А паспорт как был так и будет на прежнюю фамилию пока не поменяют.
Типа понял?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35323696
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gardenman
Примерно также как у людей с паспортами, когда девушка замуж выходит и берет чужую фамилию. Пофиг как ты на мониторе в гриде ее обзавешь. А паспорт как был так и будет на прежнюю фамилию пока не поменяют.
Типа понял?
не понял. на человека статистику заказов, контрактов, проектов делать в течение времени не надо. а тут понимаешь надо:
1) при создании отчетов учитывать что под разными названиями могут иметься в виду одни и те же сущности
2) при печати документов, справок за определенный период надо учитывать что на тот момент название было другим
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35323799
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gardenman , можно поподробнее?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35323952
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman Vasssoid Программист-ЛюбительЕсть более сложное - слияние и поглощение организаций, например.
и-и-иии? существует ли какой то общий подход к этой проблеме?

Примерно также как у людей с паспортами, когда девушка замуж выходит и берет чужую фамилию. Пофиг как ты на мониторе в гриде ее обзавешь. А паспорт как был так и будет на прежнюю фамилию пока не поменяют.
Типа понял?
Это простое переименование. Я писал про более сложный случай.
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35324136
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-Любитель , согласен, бывают и сложнее варианты, а как ты решаешь вариант с переименованием, когда нужно хранить и старое название?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35324333
ODIN.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первое что пришло в голову (не судите строго) мож так... (дерево в одной таблице, можно и без дерева тогда две таблицы)

таблица Enterprise
поле ID
поле ID_InheritedFrom (или Master_ID) потупому...
поле NAME
поле BeginDate
поле EndDate
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35324435
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы предложил бы по другому.
Оставить старую табличку org_tbl в неприкосновенности, добавив только статус
параллельно ей вести табличку переименований (слияний, дроблений).
Ну и, соответственно, ввести операцию "смена кастомера" например, когда все задолженности с ООО "РУСИНВЕСТСТРОЙ" необходимо перевести на ООО "ИНВЕСТСТРОЙ-М".

Таким образом переименование происходит следующим образом:
1. Создаём запись о ООО "ИНВЕСТСТРОЙ-М".
2. Делаем ООО "РУСИНВЕСТСТРОЙ" неактивным
3. Делаем запись о том, что первая является наследником второй. Основание - "переименование", "поглощение", "покупка долгов", "ошибка операциониста" и т.п.
4. Переводим задолженность.
5. Работаем с новой компанией.
6. В отчётах можно анализировать дату и писать сноску "ранее известный как Принц" и т.п.

Пункты 2-4 можно объединить в одну операцию.
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35324487
ODIN.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MGRЯ бы предложил бы по другому.
Оставить старую табличку org_tbl в неприкосновенности, добавив только статус
параллельно ей вести табличку переименований (слияний, дроблений).
Ну и, соответственно, ввести операцию "смена кастомера" например, когда все задолженности с ООО "РУСИНВЕСТСТРОЙ" необходимо перевести на ООО "ИНВЕСТСТРОЙ-М".

Таким образом переименование происходит следующим образом:
1. Создаём запись о ООО "ИНВЕСТСТРОЙ-М".
2. Делаем ООО "РУСИНВЕСТСТРОЙ" неактивным
3. Делаем запись о том, что первая является наследником второй. Основание - "переименование", "поглощение", "покупка долгов", "ошибка операциониста" и т.п.
4. Переводим задолженность.
5. Работаем с новой компанией.
6. В отчётах можно анализировать дату и писать сноску "ранее известный как Принц" и т.п.

Пункты 2-4 можно объединить в одну операцию.

хорошая мысль. Только вопрос по пункту 4. что значит переводим задолженность? это значит групповая обработка массива данных? если так, может изловчиться как нибудь чтобы ничего нового не рождать в документах... а заставить смотреть на другую контору... типовой запрос правда будет (и должен тогда) всегда учитывать этот момент...
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35324489
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ODIN.
хорошая мысль. Только вопрос по пункту 4. что значит переводим задолженность? это значит групповая обработка массива данных? если так, может изловчиться как нибудь чтобы ничего нового не рождать в документах... а заставить смотреть на другую контору... типовой запрос правда будет (и должен тогда) всегда учитывать этот момент...

Дело в том, что в системах, с которыми я работал баланс кастомера всегда хранится накопительно. Ну, в некоторых разрезах, конечно. Таким образом перевод задолженности - всего лишь проапдейтить несколько строк в табличке балансов.
А насчёт документов - тут хозяин бврин. Бывает, что нужна любая проводка, хоть по забалансовым счетам.
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35324701
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ODIN.
хорошая мысль. Только вопрос по пункту 4. что значит переводим задолженность? это значит групповая обработка массива данных? если так, может изловчиться как нибудь чтобы ничего нового не рождать в документах... а заставить смотреть на другую контору... типовой запрос правда будет (и должен тогда) всегда учитывать этот момент...
как вам тогда вариант с неким классификатором организации? Например если перейти на уровень отделов, то могут быть: отдел кадров, бухгалтерия, ИТ отдел. Хранить в таблицах значения идентификатора названия и идентификатора класса подразделения. Точнее видится, что можно хранить только идентификатор названия, по которому будет цепляться идентификатор подразделения.
Что то насчет плюсов/минусов мыслей нет.

Зы самый главный вывод получается- каждый решает проблему по своему, причем довольно различными способами?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35325023
Прапорщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вероятно самым простым решением будет создание периодического справочника для реквизитов, которые будут изменяться во времени.
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35325067
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasssoid Программист-Любитель , согласен, бывают и сложнее варианты, а как ты решаешь вариант с переименованием, когда нужно хранить и старое название?
Сохраняю в таблице истории изменения ключевых атрибутов организаций (не только переименования).
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35325806
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-Любитель
Сохраняю в таблице истории изменения ключевых атрибутов организаций (не только переименования).
можешь описать структуры таблиц и то как сохраняется история изменения ключевых атрибутов?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35325970
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структура самая тривиальная

iCustomerHistoryID PK СчетчикdtCustomerHistoryFrom Дата начала действия данныхdtCustomerHistoryTo Дата конца действия данныхiCustomerID FK Код организации sCustomerName Краткое названиеsCustomerReportName Название для отчетовsCustomerFullName Полное названиеiCustomerParentID FK Код родительской орг-ииiCountryCode FK Код страныiCustomerFilialLevel FK Уровень в ОАО... другие важные поляsUserNameInsert аудирующие поля (одинаковые для всех таблиц)sUserNameUpdatedtDateInsertdtDateUpdate
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35326101
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-Любитель спасибо! пошел изучать
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35326150
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-Любитель , получается по твоей таблице поле iCustomerID необходимо для различным статистических отчетов?
То есть если было РУССТРОЙИНВЕСТ (iCustomerHistoryID=2, iCustomerID=1, iCustomParentID=Null) и оно становится СТРОЙИНВЕСТ-М, то добавляется новая запись (iCustomerHistoryID=3, iCustomerID=1 (совпадающий c iCustomerID РУССТРОЙИНВЕСТа), iCustomParentID=2 (То есть iCustomParentID РУССТРОЙИНВЕСТа)).
Так или нет?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35326887
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasssoid Программист-Любитель , согласен, бывают и сложнее варианты, а как ты решаешь вариант с переименованием, когда нужно хранить и старое название?

Вопрос: где может понадобиться старое имя человека?
Ответ: В старом договоре, который был заключен в то время, когда старое имя было валидным.
(Чтобы при повторной печати то же самое напечаталось что было до того как)
Вопрос: Откуда в договоре берется имя человека?
Ответ: имя при печати договора берется из конкретного паспорта. (или другого документа)
А у документов есть сроки действия. Намек понял?

Код: plaintext
1.
2.
3.
4.
Документы людей---->люди
     ^
     |
Договора

Аналогично и организации. Меняется устав - иногда меняется и название организации. При этом куча инфы остается: номера счетов, договора и прочая хренотень.... Понятно?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35358660
Vassssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gardenman Vasssoid Программист-Любитель , согласен, бывают и сложнее варианты, а как ты решаешь вариант с переименованием, когда нужно хранить и старое название?

Вопрос: где может понадобиться старое имя человека?
Ответ: В старом договоре, который был заключен в то время, когда старое имя было валидным.
(Чтобы при повторной печати то же самое напечаталось что было до того как)
Вопрос: Откуда в договоре берется имя человека?
Ответ: имя при печати договора берется из конкретного паспорта. (или другого документа)
А у документов есть сроки действия. Намек понял?

Код: plaintext
1.
2.
3.
4.
Документы людей---->люди
     ^
     |
Договора

Аналогично и организации. Меняется устав - иногда меняется и название организации. При этом куча инфы остается: номера счетов, договора и прочая хренотень.... Понятно?

намек понят Ж) кстати в учебнике по РСУБД для подобных случаев (когда необходимо хранить историю изменений) применяется некая реализация сущностей как классов-наследников вроде как то так http://]http://www.citforum.ru/database/articles/moq.shtml
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35367308
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пришла в голову следующая мысль. Например организация с различными должностями. Директор, Зам директора, Бухгалтер и так далее. Сотрудник Иванов Иван Иванович, Петров Петр Петрович и т.д. Хранение информации об изменяющихся наименованиях аналогично задаче о хранении информации об изменении должностей сотрудников.
В общем случае получается что данная ситуация идентична связи много-много между сущностями (одна и та же должность может быть занята с течением времени разными сотрудниками, один и тот же сотрудник может занимать разные должности с течением времени; одна и та же компания может входить в состав различных холдингов с течением времени, один и тот же холдинг может включать в себя различные компании).
=> можно применить стандартный подход реализации связи многие-к-многим

таблица Должности
Код: plaintext
1.
2.
3.
должность_id должность_наименование
 0              директор
 1              заместитель директора

таблица Сотрудники
Код: plaintext
1.
2.
3.
сотрудник_id сотрудник_ФИО
 0             Иванов Иван Иванович
 1             Петров Петр Петрович

таблица СотрудникиДолжности
Код: plaintext
1.
2.
3.
должность_id сотрудник_id назначен_дата снят_дата  СотрудникиДолжность_id
 0                    0        12 . 05 . 2007      14 . 05 . 2008      0 
 0                    1        14 . 05 . 2008                    1 

Аналогично можно сделать для организаций. Но тут вопрос.
Какой способ хранения данных о сотруднике принявшем, выполнившем заказ предпочтительнее?
Есть вариант хранить в БД в этих случах идентификатор записи в таблице СотрудникиДолжности. В этом случае:
+ хранится 1 поле
- если произойдет какой либо сбой и записи в таблице СотрудникиДолжности будут утеряны, то восстановить что же значил идентификатор 152 не получится

Другой вариант, хранить сотрудник_id, должность_id
- хранится будет два поля
+ большая устойчивость к сбоям

Может есть что то еще? Как решаете этот момент?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35368320
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учтите вот что...
В организации есть контактные лица и они действительно занимают какие-то должности.
Но эти должности - пофиг.
В документах (договорах) может поставить подпись любой из сотрудников организации если у него есть на это право. Такое право дает доверенность которая действует как правил с... и по... (обычно год). Это право называется основанием. директор и гл. Бух. не используют доверенности т.к. действуют на основании УСТАВА организации.
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35369310
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanдиректор и гл. Бух. не используют доверенности т.к. действуют на основании УСТАВА организации.
Это не всегда верно, так что всегда надо уточнять.
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35451795
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
!ап
пришла в голову мысль о следующем решении.

Каждый объект (в случае структуры организаций с территориальным и департаментальным делением) можно представить в виде вектора со следующими координатами:
Объект(Организация, Департамент, Территориальное местоположение, Уровень, Родительский объект, Наименование)
Суть в том что набор координат:
(Организация, Департамент, Территориальное местоположение, Уровень)
в ряде случаев однозначно идентифицирует так скажем тип объекта.

Например (Лукойл, ИТ, г. Самара, Отдел, филиал Лукойл в г. Самара) определяет однозначно отдел ИТ обеспечения филиала Лукойл в г. Самара. Наименование же может изменяться, но сам объект остается тем же.

Для реализации этого решения необходима таблица
tblObjects
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
iObjectID(PK)
iOrganisationID(FK)
iDepartmentID(FK)
iTerritoryID(FK)
iObjectLevelID(FK)
iParentObjectID
iObjectNameID(FK)
и соответственно таблица
tblObjectNames
Код: plaintext
1.
2.
3.
iObjectNameID(PK)
sObjectName
iObjectPreviousNameID
в этом случае привязку сотрудников делать к iObjectID. При изменении наименования iObjectID в таблицу tblObjectNames добавляется новая строчка с новым наименованием и ссылкой на предыдущее название.

Для хранения же реквзитов наименования в договорах, заказ и прочее указывать два FK - iObjectID - для составления статистических отчетов и iObjectNameID (который будет указывать на наименование, действовавшее на момент внесения данных)
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35451803
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MGR
3. Делаем запись о том, что первая является наследником второй. Основание - "переименование", "поглощение", "покупка долгов", "ошибка операциониста" и т.п.

для реализации данной функции можно в таблицу tblObjectNames ввести поле для описания причины наименования.


Вобщем как вам такой некий координатный подход?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35451820
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gardenman
Аналогично и организации. Меняется устав - иногда меняется и название организации. При этом куча инфы остается: номера счетов, договора и прочая хренотень.... Понятно?
этот метод мне понравился, но условием его применимости является полнота получения сведений о документам, согласно которым происходят те или иные переименования. но у меня в ряде случаев такой информации нет и есть необходимость учитывать изменения по факту
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35451904
йцуйцу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vasssoid!ап
пришла в голову мысль о следующем решении.

Каждый объект (в случае структуры организаций с территориальным и департаментальным делением) можно представить в виде вектора со следующими координатами:
Объект(Организация, Департамент, Территориальное местоположение, Уровень, Родительский объект, Наименование)
Суть в том что набор координат:
(Организация, Департамент, Территориальное местоположение, Уровень)
в ряде случаев однозначно идентифицирует так скажем тип объекта.

Например (Лукойл, ИТ, г. Самара, Отдел, филиал Лукойл в г. Самара) определяет однозначно отдел ИТ обеспечения филиала Лукойл в г. Самара. Наименование же может изменяться, но сам объект остается тем же.

Для реализации этого решения необходима таблица
tblObjects
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
iObjectID(PK)
iOrganisationID(FK)
iDepartmentID(FK)
iTerritoryID(FK)
iObjectLevelID(FK)
iParentObjectID
iObjectNameID(FK)
и соответственно таблица
tblObjectNames
Код: plaintext
1.
2.
3.
iObjectNameID(PK)
sObjectName
iObjectPreviousNameID
в этом случае привязку сотрудников делать к iObjectID. При изменении наименования iObjectID в таблицу tblObjectNames добавляется новая строчка с новым наименованием и ссылкой на предыдущее название.

Для хранения же реквзитов наименования в договорах, заказ и прочее указывать два FK - iObjectID - для составления статистических отчетов и iObjectNameID (который будет указывать на наименование, действовавшее на момент внесения данных)
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35452139
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в раздумьях вводить такую схему или нет. может есть у кого мнения?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35455616
Vasoyd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Придется таки на свои страх и риск вводить такую систему..потом отпишусь подводных камнях :)
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35455622
Vasoyd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
отпишусь *о* подводных камнях :)
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35455938
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://martinfowler.com/ap2/timeNarrative.html
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35457275
Фотография shelsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы исходил из "естественных" процессов
1) Т.е. закрывал старую запись ООО "Пупкин и Ко" и открывал новую ЗАО "Пупкин и Ко"
2) И ввел бы таблицу кросс-связей между организациями с типами связи. Одним из типов связей было бы "правоприемник". В т. ч. таким образом решилась бы и задача объединения и разделения организаций.



______________________________________________________
Давайте считать обступившее нас со всех строн коричневое море шоколадным
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35457505
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vasoydотпишусь *о* подводных камнях :)
первый подводный камень - предложенную схему проблематично использовать для процессов слияния и разделения объектов.
shelsoftЯ бы исходил из "естественных" процессов
1) Т.е. закрывал старую запись ООО "Пупкин и Ко" и открывал новую ЗАО "Пупкин и Ко"
2) И ввел бы таблицу кросс-связей между организациями с типами связи. Одним из типов связей было бы "правоприемник". В т. ч. таким образом решилась бы и задача объединения и разделения организаций.
подумаю над этим. вариант на вскидку очень даже понравился.
Senya_Lhttp://martinfowler.com/ap2/timeNarrative.html
спасибо за ссылку. читаю.
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35463437
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Senya_Lhttp://martinfowler.com/ap2/timeNarrative.html
это ж вроде больше как относится к ОО подходу? или как?
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35468285
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasssoid Senya_Lhttp://martinfowler.com/ap2/timeNarrative.html
это ж вроде больше как относится к ОО подходу? или как? Да, как-то относиться к ОО. Как, впрочем, и все творчество мистера Фаулера :)
Если тема еще актуальна, могу посоветовать ссылку более близкую к жизни, просто тогда найти не мог, у меня сохранена страничка локально.
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35478897
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Senya_L Vasssoid Senya_Lhttp://martinfowler.com/ap2/timeNarrative.html
это ж вроде больше как относится к ОО подходу? или как? Да, как-то относиться к ОО. Как, впрочем, и все творчество мистера Фаулера :)
Если тема еще актуальна, могу посоветовать ссылку более близкую к жизни, просто тогда найти не мог, у меня сохранена страничка локально.
премного благодарен )) это хороший материал.однако ж немного по другой теме
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35479004
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MGRЯ бы предложил бы по другому.
Оставить старую табличку org_tbl в неприкосновенности, добавив только статус
параллельно ей вести табличку переименований (слияний, дроблений).
Ну и, соответственно, ввести операцию "смена кастомера" например, когда все задолженности с ООО "РУСИНВЕСТСТРОЙ" необходимо перевести на ООО "ИНВЕСТСТРОЙ-М".

Таким образом переименование происходит следующим образом:
1. Создаём запись о ООО "ИНВЕСТСТРОЙ-М".
2. Делаем ООО "РУСИНВЕСТСТРОЙ" неактивным
3. Делаем запись о том, что первая является наследником второй. Основание - "переименование", "поглощение", "покупка долгов", "ошибка операциониста" и т.п.
4. Переводим задолженность.
5. Работаем с новой компанией.
6. В отчётах можно анализировать дату и писать сноску "ранее известный как Принц" и т.п.

Пункты 2-4 можно объединить в одну операцию.
shelsoftЯ бы исходил из "естественных" процессов
1) Т.е. закрывал старую запись ООО "Пупкин и Ко" и открывал новую ЗАО "Пупкин и Ко"
2) И ввел бы таблицу кросс-связей между организациями с типами связи. Одним из типов связей было бы "правоприемник". В т. ч. таким образом решилась бы и задача объединения и разделения организаций.

Вот эти два сообщения а также описание работы 1С, в которой нельзя обращаться напрямую к таблицам
одтолкнули к следующему решению).
1) объекты характеризуются и идентифицируются полным набором своих параметров. координатный подход не покатил (т.е. даже если буква в название добавляется - это уже новый объект, с новыми свойствами)

___________________________
здесь и далее объект - это организационное подразделение - ООО, ОАО, ЗАО, департамент, отдел и прочее


2) все объекты хранятся в одной таблице.
3) связи между объектами хранятся в таблице вида
Код: plaintext
ID_объект1 ID_объект2 ID_вида_связи_объекта1_по_отношению_к_объекту2

4) виды связей
авторОдним из типов связей было бы "правоприемник". В т. ч. таким образом решилась бы и задача объединения и разделения организаций.
также виды связей - выведен из состава, введен в состав, расформирован, организован и т.д.

5) ВСЕ действия по изменению объектов, ТОЛЬКО через соответствующие формы. Типа выбрал из списка Объект1 выбираешь действие (переименовать, перевести в подчинение другому объекту), выходит соответствующий диалог и все. остальное берет на себя логика.

___________________________________
сейчас реализую данную схему на Access, потому всю логику загоняю в форму. а так наверное триггеры и хранимые процедуры рулят

ИТОГИ:
+ все изменения объектов делаются только через заранее определенные интерфейсы
+ вероятность внести чего-то не так крайне малы. (О! необходима кнопка - "исправить"ж) )
+ все необходимые действия при изменении, создании, уничтожении объектов (перевести сотрудников в новый департамент, уволить сотрудников, и прочее прочее) будут производится логикой приложения


- необходимо четко формализовать все связи
- все формализованные связи необходимо учитывать в логике приложения
=> сложность логики.


+/- стороннему человеку в таблицах и логике без бутылки не разобраться

_______________________
написал и понял, что это все отражение принципа: Чем проще идея, тем сложнее ее техническая реализация

интересно было бы услышать мнения
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35479172
Фотография shelsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) А дата/время где ?
2) Связи бы я ИХМО давал возможность только добавлять и отменять
3) Продумать интерфейс в "три щелчка"


______________________________________________________
Давайте считать обступившее нас со всех строн коричневое море шоколадным
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35479273
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shelsoft1) А дата/время где ?

дата время изменений? типа - дата перименования и прочее? конечно должны быть.
shelsoft2) Связи бы я ИХМО давал возможность только добавлять и отменять

хм...это как? можно поподробнее?
shelsoftПродумать интерфейс в "три щелчка"

есть пример подобного интерфейса применительно к данной задаче? если не трудно, выложи скриншот
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35479365
Фотография shelsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Думайте самостоятельно и критично в чем я был возможно не прав поскольку не знаю местных условий
2) Есть такие интерфейсы, но я предпочитаю чтобы тимлид или пм сами выбирали решения. Как в анекдоте "не грузите меня я стратегией занимаюсь" ))

______________________________________________________
Давайте считать обступившее нас со всех строн коричневое море шоколадным
...
Рейтинг: 0 / 0
Хранение и обработка объектов с изменяющимися наименованиями
    #35479384
Vasssoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shelsoft1) Думайте самостоятельно и критично в чем я был возможно не прав поскольку не знаю местных условий
2) Есть такие интерфейсы, но я предпочитаю чтобы тимлид или пм сами выбирали решения. Как в анекдоте "не грузите меня я стратегией занимаюсь" ))

Ну буду ждать тимлида Ж)
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение и обработка объектов с изменяющимися наименованиями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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