powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Дублирование информации в таблицах
47 сообщений из 47, показаны все 2 страниц
Дублирование информации в таблицах
    #39061533
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте
Не знал даже как правильно написать тему для данной проблемы, поэтому заранее прошу простить
Решая реальную задачку столкнулся с такой бедой:

Есть, предположим, табличка "Документ", и много справочников. Эта табличка содержит ссылки на справочники.
И вот если какой то из них будет изменен, то старые данные на которые ссылался этот "Документ" будут потеряны(ведь у нас там только ссылка а данные в справочники поменялись)...
Как же сделать так, чтобы эти данные никуда не пропадали при изменении справочников.

Я для себя вижу два варианта:
1) Сказать пользователю, что мол нельзя так делать и надо создавать новый справочник
2) Дублировать поля справочников в "Документе" и при создании "Документа" копировать просто инф. из справочников.

1й способ думаю полный бред...
2й еще куда ни шло, но пугают те самые фундаменты: мол БД для того, чтобы сократить объем хранимой информ. и не дублировать ее и тд. и тп. Дублирования будет не так уж много ибо БД прямо скажем маленькая, но вот поддерживать потом как, если она начнет разрастаться...

Уверен есть способы много лучше!
Подскажите как быть. Литературой, советом, чем угодно!
Заранее спасибо
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061537
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Погугли "периодические реквизиты".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061548
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doofy,

Как по вашему чем отличается справочник от документа?.. Ответив на этот вопрос сможете понять что у вас не так. Если наугад то неправильная организация, а не структура БД. Хотя это только догадка а не факт.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061551
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Бобр,

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

авторКак по вашему чем отличается справочник от документа?
Чем по-вашему?

авторОтветив на этот вопрос сможете понять что у вас не так.
Судя по всему вы знаете? К чему загадки? Можете сказать что не так чего уж там...

авторнеправильная организация, а не структура БД.
Ну так я не отрицаю, речь как раз о том, что я не знаю как правильно, да и вообще каких-то методик де-факто или что-то в этом роде.

В качестве примера могут быть такие таблички:
Документ - Заказы
Справочник - Книги
Изменилось название у книги(так вот захотели) вот и все дела, и в "старом" заказе уже не та книга, что была когда-то.
Это конечно не моя база, но для примера сгодится думаю.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061593
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doofy,

Сибиряков Вам дал вполне практичный совет (правда имхо именно такие слова в гугле быдут выдавать много 1С-а, что не добавит ясности)

Если кратко - у элемента справочника вводятся периоды актуальности.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061595
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doofyИзменилось название у книги(так вот захотели)
Хренасе у вас хотелки... А весь напечатанный тираж отозвали чтобы поменять обложку?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061599
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
авторХренасе у вас хотелки... А весь напечатанный тираж отозвали чтобы поменять обложку?..
"хотелки" не мои)
Так и знал, что будут привязываться к конкретному примеру. Нельзя ли абстрагироваться от него? Ну или взять за данность - такая вот "хотелка"... это же не точь в точь как оно есть, не нравятся книги возьмите что-нибудь другое "Клиенты", например, человек, который сменил фамилию, так будет проще?
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061604
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doofyDimitry Sibiryakov,
авторХренасе у вас хотелки... А весь напечатанный тираж отозвали чтобы поменять обложку?..
"хотелки" не мои)
Так и знал, что будут привязываться к конкретному примеру. Нельзя ли абстрагироваться от него? Ну или взять за данность - такая вот "хотелка"... это же не точь в точь как оно есть, не нравятся книги возьмите что-нибудь другое "Клиенты", например, человек, который сменил фамилию, так будет проще?
да пофиг, пусть хоть пол сменит, тебе то какое дело? ты ж не обязан следить за его жизнью?
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061607
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или все ж обязан может?
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061609
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRos,

Ваша правда! ) Пускай меняет)) Не обязан ему ничем.
Но ведь задачу то надо как то решить

Простите, я не совсем понимаю о чем вы.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061610
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин,

периоды актуальности...что то в этом может и есть...правда пока что не могу понять как мне это поможет
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061635
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин у элемента справочника вводятся периоды актуальности.
+1

или более рассширенный вариант - 2 таблицы
- собственно справочник с неизменными элементами
- история изменений элементов с периодом актуальности
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061639
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doofy,

"Вам шашечки или ехать?" (с) не мое но в тему.
Я то знаю чем отличается. Но проблема ведь не у меня. Если думаете что вам тут начнут разжевывать теорию - очень ошибаетесь. За теорией обращайтесь к учителям. Тут только могут послать в правильном направлении. Поэтому если хотите посыла - выкладывайте что у вас и как. По другому думаю никак.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061653
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doofy,

наоборот, номер 2 --полный бред.
надо делать 1.

к тому же не парься так сильно, 90% справочников никогда не меняется.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061744
Уважаемый автор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doofy,

введите таблицу "история изменений"
- id
- id записи ваших таблиц
- имя поля
- старое значение
- новое значение
- дата, время изменения

периодические реквизиты не спасут от отслеживания изменений, например, наименование справочника.
изменения ссылки на справочник - решат, но не само изменение полей!
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061814
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть товар Велосипед трехколесный металлический
у енго есть ставка НДС = 10%
вдруг наш парламент решает, что нужно применить 18%
это просто вариант, сложнее:
этот велик возят из-за рубежа и разные таможни по-разному (ставки НДС) его растомаживают
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061841
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый авторвведите таблицу "история изменений"
- id
- id записи ваших таблиц
- имя поля
- старое значение
- новое значение
- дата, время изменения

Я бы сделал так: для каждой таблицы сделать историческую таблицу:
- id
- id записи ваших таблиц
- значение
- дата начала,
- дата окончания
-время изменения
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061887
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiУважаемый авторвведите таблицу "история изменений"
- id
- id записи ваших таблиц
- имя поля
- старое значение
- новое значение
- дата, время изменения

Я бы сделал так: для каждой таблицы сделать историческую таблицу:
- id
- id записи ваших таблиц
- значение
- дата начала,
- дата окончания
-время изменения

Что Вы выиграете от того что это будет отдельная таблица? Запросы на получение нужного значения будут, очевидно, сложнее. Вероятность коллизии в данных - выше. Что будет проще?
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061898
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doofy,
для меня бы был основной вопрос такой: надо ли знать, что "Изделие #1" из справочника в определенный момент было переименована в "Изделие #2", а потом еще и в "Изделие №3".

Если да - заморачивайтесь с периодическими реквизитами, как вам и советовали выше. Вариантов как это сделать - тысячи, от доп таблиц до просто ссылок на родительскую запись при "клонировании" и использовании одной таблицы.
Если нет - делайте вместо редактирования - дублирование записи с новыми параметрами/реквизитами в справочнике и запретите редактирование справочников как таковое. Имхо самый простой вариант.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39061940
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mikle83doofy,
для меня бы был основной вопрос такой: надо ли знать, что "Изделие #1" из справочника в определенный момент было переименована в "Изделие #2", а потом еще и в "Изделие №3".

хранить все не нужно
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39062452
MUSYAKA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а вот у меня вопрос - сколько записей в справочнике, связанном с "документом" ? Наверное не одна (иначе это был бы не справочник), а если не одна то ссылка в Документе должна на быть на конкретную запись из справочника. Долее с правами доступа к этой записи : при попытке удалить - предупреждение: имеются связанные документы), при попытке редактировать - предупреждение о наличии связанных документов (при большом количестве пользователей функцию редактирования в таком случае вообще исключить нужно).
Другими словами - однажды созданные связи должны оставаться в первозданном виде, до тех пор пока не будут изменены из первоначальной точки создания ( т.е. в нашем случае только из Документа)
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39062794
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрТут только могут послать в правильном направлении.
А могут и в не правильном) Вот такая суровая реальность))
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39062800
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doofyDimitry Sibiryakov,
авторХренасе у вас хотелки... А весь напечатанный тираж отозвали чтобы поменять обложку?..
"хотелки" не мои)
Так и знал, что будут привязываться к конкретному примеру. Нельзя ли абстрагироваться от него? Ну или взять за данность - такая вот "хотелка"... это же не точь в точь как оно есть, не нравятся книги возьмите что-нибудь другое "Клиенты", например, человек, который сменил фамилию, так будет проще?
Тут лучше не абстрагироваться, а как раз наоборот, давайте конкретный пример. У каждого случая свое решение. Поменяли НДС? Храните НДС в заказе, а что в этом страшного. Клиент сменил ФИО? А зачем вам ФИО? Чтобы светить в списке заказов? Да и хрен с ним, пусть новое ФИО светится. Или для того чтобы какой-нибудь бланк заказа от заднего числа печатался с тем же ФИО, которое было на ту дату? Для печати я бы вообще хранил реквизиты в отдельной таблице. Т.е. при печати они сохраняются в этой таблице и печатаются из нее. Если это конечно критично в вашем случае. Или просто сохраняйте конкретный распечатанный документ (pdf).
У кредитного продукта поменялась ставка, а по старым кредитам ставка должна остаться прежней? Храните ставку в конкретном договоре клиента.
Ну и т.д. А в каких-то случаях, действительно, периодический справочник сгодится.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39062883
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doofyЕсть, предположим, табличка "Документ", и много справочников. Эта табличка содержит ссылки на справочники.
И вот если какой то из них будет изменен, то старые данные на которые ссылался этот "Документ" будут потеряны(ведь у нас там только ссылка а данные в справочники поменялись)...
Как же сделать так, чтобы эти данные никуда не пропадали при изменении справочников.

Я для себя вижу два варианта:
1) Сказать пользователю, что мол нельзя так делать и надо создавать новый справочник
2) Дублировать поля справочников в "Документе" и при создании "Документа" копировать просто инф. из справочников.

Может чота не понял, но по-моему все классически просто: в таком случае (при изменении справочника) делается не прямой апдейт записей, а текущая запись становится архивной (например проставляется дата архивации или поле-признак), и добавляется новая запись, т.о. все записи документов будут ссылаться на прежние данные, а для новых документов выводим только текущие актуальные записи справочника.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39062919
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doofy,

Не далее как сегодня приходит заявка, надо поменять название организации в справочнике организаций.
Для старого названия устанавливаю признак логического удаления (запись не удаляется, но в списках выбора уже не отображается).
Создаю запись с новым названием.
Это не самое правильное решение, но программа не моя, а условиям задачи удовлетворяет.
Более правильное решение с датами Вам писали выше.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39063345
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MUSYAKA,
Вообщем как то так и делалось раньше, когда можно было сказать заказчику "делайте так"
Но пользователю плевать на это, им нужно так как они просят не сделаешь ты сделают другие
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39063346
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JDS,

Неплохая мысль, спасибо!
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39063348
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо!
Хорошие советы. Буду пробовать
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39063361
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSdoofyЕсть, предположим, табличка "Документ", и много справочников. Эта табличка содержит ссылки на справочники.
И вот если какой то из них будет изменен, то старые данные на которые ссылался этот "Документ" будут потеряны(ведь у нас там только ссылка а данные в справочники поменялись)...
Как же сделать так, чтобы эти данные никуда не пропадали при изменении справочников.

Я для себя вижу два варианта:
1) Сказать пользователю, что мол нельзя так делать и надо создавать новый справочник
2) Дублировать поля справочников в "Документе" и при создании "Документа" копировать просто инф. из справочников.

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

Ограничения уникальности на название элемента справочника будет особенно удобно реализовывать :)
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39063414
этта
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот МатроскинJDSпропущено...


<>.

Ограничения уникальности на название элемента справочника будет особенно удобно реализовывать :)
Код: sql
1.
CREATE UNIQUE INDEX ON ......  (name) WHERE NOT arch;


или ваше наколенное поделие не умеет частичных индексив ?
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39063437
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эттаКот Матроскинпропущено...


Ограничения уникальности на название элемента справочника будет особенно удобно реализовывать :)
Код: sql
1.
CREATE UNIQUE INDEX ON ......  (name) WHERE NOT arch;


или ваше наколенное поделие не умеет частичных индексив ?

При чем тут мое "наколенное поделие", старина? ТС ничего про свой сервер не писал - может и не поддерживать.
Не говоря уж про то что переносимое решение при прочих равных лучше, нет?
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39063450
этта
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскинэттапропущено...

Код: sql
1.
CREATE UNIQUE INDEX ON ......  (name) WHERE NOT arch;


или ваше наколенное поделие не умеет частичных индексив ?

При чем тут мое "наколенное поделие", старина? ТС ничего про свой сервер не писал - может и не поддерживать.
Не говоря уж про то что переносимое решение при прочих равных лучше, нет?как бы очевидно обратное

"переносимое решение при прочих равных" -- хуже

-- как и всякая погоня за универсальностью в ущерб производительности.

но не расстраивайтесь, старина, даже в оракл частичные индексы эмулируются. возможно и в вашем любимом поделии -- найдётся решение.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39063460
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эттаКот Матроскинпропущено...


При чем тут мое "наколенное поделие", старина? ТС ничего про свой сервер не писал - может и не поддерживать.
Не говоря уж про то что переносимое решение при прочих равных лучше, нет?как бы очевидно обратное

"переносимое решение при прочих равных -- хуже

-- как и всякая погоня за универсальностью в ущерб производительности. .

*facepalm*
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39063467
этта
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскинэттапропущено...
как бы очевидно обратное

"переносимое решение при прочих равных -- хуже

-- как и всякая погоня за универсальностью в ущерб производительности. .

*facepalm*
не в коня корм

переносимое == отказавшееся от оптимальных частных решений

при "прочих равных" (т.е. в сферическом вакууме) -- такой отказ -- всегда хуже

так что можешь хоть весь фейс себе своротить
, пальмом
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064302
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинНе говоря уж про то что переносимое решение при прочих равных лучше, нет?
В своё время на этот счёт была хорошая фраза. Не буду переводить обратно на английский, скажу так: "Говорить о том, что Java лучше, поскольку подходит для любой ОС - примерно то же самое, что говорить, что анальный секс лучше, поскольку подходит для любого пола".
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064323
Pulsar_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer... пропущено
"Говорить о том, что Java лучше, поскольку подходит для любой ОС - примерно то же самое, что говорить, что анальный секс лучше, поскольку подходит для любого пола".
Может быть все-таки оральный? Анальный для любого пола подойдет вряд ли. Во всяком случае без дополнительных приспособлений.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064342
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pulsar_p,

ну софтварер же теоретик
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064343
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а может и эгоист (не в обиду, уж больно пошлую фигню сказал)
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064361
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pulsar_pАнальный для любого пола подойдет вряд ли.
Взгляд на этот вопрос - это любопытный психологический момент (однако, к тематике форума имеющий отношение только через привычку некоторых мемберов делать всё через задницу)
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064380
Pulsar_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну это в Европе нынче модный тренд.
Слава Богу, не у нас!
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064768
Уважаемый автор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSМожет чота не понял, но по-моему все классически просто: в таком случае (при изменении справочника) делается не прямой апдейт записей, а текущая запись становится архивной (например проставляется дата архивации или поле-признак), и добавляется новая запись, т.о. все записи документов будут ссылаться на прежние данные, а для новых документов выводим только текущие актуальные записи справочника.

Плохое решение!
Например, клиент поменял название юридическое, а взаиморасчеты надо строить фактически по клиенту. Усложняются выборки и связи в отчетах и т.д.
Второй пример, сотрудница вышла замуж и сменила ФИО. Заводить нового сотрудника не верно! Как учитывать в расчетах прежние начисления?

поэтому, только механизмы учитывающие периодические изменения!

выше структуру приводил!
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064771
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый авторПлохое решение!
....
поэтому, только механизмы учитывающие периодические изменения!
Вообще-то, JDS привёл один из вариантов "механизма учитывающего периодические изменения" :)
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064881
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый автор Плохое решение!
Например, клиент поменял название юридическое, а взаиморасчеты надо строить фактически по клиенту. Усложняются выборки и связи в отчетах и т.д.
Второй пример, сотрудница вышла замуж и сменила ФИО. Заводить нового сотрудника не верно! Как учитывать в расчетах прежние начисления?

поэтому, только механизмы учитывающие периодические изменения!
выше структуру приводил!

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

2. в то же время:
Уважаемый авторвведите таблицу "история изменений"
- id
- id записи ваших таблиц
- имя поля
- старое значение
- новое значение
- дата, время изменения
Именно такой вариант приемлем, если в целом данные хранятся в базе развернутые "вертикально" (имя поля - значение), таких систем мало встречал, как и систем с таким механизмом историчности. Если же данные хранятся "горизонтально" (таблицы не из двух полей :), то для поддержания историчности типа "имя поля-старое значение-новое значение" придется довольно капитально перепиливать систему, практически все отчеты, с вероятностью 99%, придется переползать переползать на динамический скл, что совсем не делает систему внутри удобочитаемой, да и по быстродействию просядем немного.
А так да, отдельная табличка - вполне нормально, не спорю.
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064894
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый авторвведите таблицу "история изменений"
- id
- id записи ваших таблиц
- имя поля
- старое значение
- новое значение
- дата, время изменения

Да не. Все-таки: имя поля+старое знач.+новое знач....
Представляете, как будет строиться и отрабатывать запрос, чтобы достать все поля документа?
Не секрет, что бывают документы и с овер сотней полей, понятно, что не все они будут с историей, но тем не менее, для каждого надо будет отдельно доставать его значение?
В общем смотря какая конечная цель и текущая структура данных, но имхо, в основном оперируют целыми записями (единственный контраргумент, кот. может быть в этом случае - место на диске, если архивные записи плодятся в диких количествах ))
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064992
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый авторНапример, клиент поменял название юридическое, а взаиморасчеты надо строить фактически по клиенту. У
Ну документ выписанный год назад не должен при сегодняшнем просмотре на него ОТЛИЧАТСЯ, от своего состояния годичной давности. Так что в нем как раз и должно быть старое наименование!!!!

p.s. SCD2 - все уже давно придумано за нас
...
Рейтинг: 0 / 0
Дублирование информации в таблицах
    #39064998
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan DurakНу документ выписанный год назад не должен при сегодняшнем просмотре на него ОТЛИЧАТСЯ, от своего состояния годичной давности. Так что в нем как раз и должно быть старое наименование!
Там речь не о документе, а о взаиморасчетах - т.е. в отчете мы должны условно подбить баланс по одной организации, хотя у нее уже типа две записи, поэтому речь о том, чтобы основная запись клиента всегда была одна, но с историей изменения, в документах отображать исторические данные, но иметь сущность, которая бы отражала организацию в целом для удобства тех же взаиморасчетов )
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Дублирование информации в таблицах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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