
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
08.05.2014, 17:57
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
К примеру, имеем документ. Но сам документ не содержит никаких данных, а тоьлко ссылки (много). Его отпечатали, проплатили, положили в шкаф. После этого изменять документ нельзя. И на это есть логика в базе в таблице документов. Тем не менее можно изменить все в подиченных таблицах, на которые ссылается этот документ. И если это случается то меняется и сам документ, при его открытии или печати данные будут другими. как бороться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:04
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
> как бороться Учиться проектировать базы данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:08
|
|||
|---|---|---|---|
Зло нормализации |
|||
|
#18+
Relic HunterЕго отпечатали, проплатили, положили в шкаф. и положили в заблокированную автономную таблицу готовых документов, где вместо ссылок реальные значения из подчиненных таблиц у каждого документа. В этом случае можно удалить вообще все подчиненные таблицы, а документы останутся в неизменном виде... ну да, избыточность, а что делать... ну пусть автономная таблица будет в отдельной БД для удобства использования и контроля.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:16
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
Relic Hunter, Учиться проектировать базы данных. Это грубовато, но в целом верно :) Что Вы хотите от системы - чтобы при изменениях в "подчиненных" (а на самом деле, наоборот, родительских) таблицах в документе оставались старые значения? Тогда надо прикручивать хранение истории для этих родительских таблиц - чтобы ссылки документа указывали не на актуальные на текущий момент записи таблиц, а на записи, бывшие актуальными в момент фиксации документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:24
|
|||
|---|---|---|---|
Зло нормализации |
|||
|
#18+
Relic Hunter, Или как Кот матроскин предложил тоже покатит на ура (повторить фрагмент схемы БД Документ + Родительские таблицы) и кидать туда окончательный вариант документа и параметров, будет сложнее реализовать, но избыточности меньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:31
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
Кот Матроскин, при хранении истории не возможно использовать уникальные ключи в родителях (ака AK), что не есть гут. guest_20040621, Проектировал не я:) По делу есть что-то? vmag, Тут вообще весело будет, если в таблице одно, а в документе другое. Будут круглые глаза и вопросы "откуда оно там взялось?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:39
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
В общем склоняюсь к мысли создать XML колонку в таблице доументов и сохранять документ там в момент его генерации, как xml со всеми данными. Благо Оракел такое позволяет. Остается вопрос про FK документа. На фига они нужны и на что они ссылаются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:42
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
Ну или вообще перейти на документo-ориентированные ДБ, типо Монго. Вижу тенденция к тому :) Вот тебе и "учится проектировать БД". То, что мы учили придется забыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:45
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
Relic HunterКот Матроскин, При хранении истории не возможно использовать уникальные ключи в родителях (ака AK), что не есть гут. Что значит "не возможно использовать уникальные ключи" - а какие возможно использовать, неуникальные? :) Разумеется, ключ таблицы (даже в случае хранения истории в той же таблице, что и актуальные значения, что, вообще говоря, необязательно) будет уникальным, просто сама таблица будет устроена чуть сложнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:47
|
|||
|---|---|---|---|
Зло нормализации |
|||
|
#18+
Relic HunterТут вообще весело будет, если в таблице одно, а в документе другое. Будут круглые глаза и вопросы "откуда оно там взялось?" Не в этом беда и это не то, о чем вы просили... в автономной таблице документ и подписанный в сейфе документ будут одинаковыми , именно об этом вы просили, а дальше смотрите кто когда и что вносил по логам в параметры после даты консервации документа.... Relic HunterИ если это случается то меняется и сам документ, при его открытии или печати данные будут другими. как бороться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:53
|
|||
|---|---|---|---|
Зло нормализации |
|||
|
#18+
Relic HunterВ общем склоняюсь к мысли создать XML колонку в таблице доументов и сохранять документ там в момент его генерации, как xml со всеми данными И чем по логике и назначению то что выше отличается от того что ниже vmagи положили в заблокированную автономную таблицу готовых документов, где вместо ссылок реальные значения из подчиненных таблиц у каждого документа. Хочется освоить XML ??? Ну, тоже тема... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:55
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
Кот МатроскинЧто значит "не возможно использовать уникальные ключи" - а какие возможно использовать, неуникальные? :) Разумеется, ключ таблицы (даже в случае хранения истории в той же таблице, что и актуальные значения, что, вообще говоря, необязательно) будет уникальным, просто сама таблица будет устроена чуть сложнееНу как? Есть в таблице PK (сурогат) и АК (код клиента). Оба уникальны. Если хранить историю тут-же, то с АК уникальность придется снять. Если историю вынести в отдельную, этож как нужно будет переделать модель и прикладнуху.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 18:58
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
>> И чем по логике и назначению то что выше отличается от того что ниже Тоже костыль, но не такой массивный :) >> Хочется освоить XML ??? Ну, тоже тема... Все уже давно освоено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 19:13
|
|||
|---|---|---|---|
Зло нормализации |
|||
|
#18+
Relic HunterТоже костыль, но не такой массивный :) - а на сколько не такой массивный? И в какую сторону? - ведь вся полная текстовая информация по документу и там и там практически одинаковая, только в таблице не будет кучи тэгов и разметки которые есть в XML которые тоже нужно хранить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 19:18
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
vmag- а на сколько не такой массивный? И в какую сторону? - ведь вся полная текстовая информация по документу и там и там практически одинаковая, только в таблице не будет кучи тэгов и разметки которые есть в XML которые тоже нужно хранить...Над собой смеетесь:) Документ может состоять из 5, 6-ти и даже более подчиненных таблиц -деталей. Я могу это дело загнать в одно XML поле в мастере. Теперь раскажите нам как будет удобно построить "актуальных" таблицы для всех этих деталей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 19:30
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
Вам же сказали, Relic Hunter: учиться проектировать. У любой сущности есть жизненный цикл. Любое подмножество экземпляров сущностей включает значение временной метки. Любая сущность идентифицируется суррогатными ключами. Этого достаточно, чтобы построить логически корректную модель. Берёте карандаш и рисуете зависимости. Отсюда, кстати, просто рисуется и модель регистрации изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 19:30
|
|||
|---|---|---|---|
Зло нормализации |
|||
|
#18+
Relic HunterК примеру, имеем документ. Но сам документ не содержит никаких данных, а тоьлко ссылки (много). Его отпечатали, проплатили, положили в шкаф Ух ты... Уже что переключились на другую тему или как? Или идет конкретизация постановки задачи? А для того что выше решение такое: Был документ: - ссылка 1 - ссылка 2 - ссылка 3 - ............ В архив попал после подписи документ: - реальное значение 1 - реальное значение 2 - реальное значение 3 - ............ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 19:41
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
guest_20040621Вам же сказали, Relic Hunter: учиться проектировать. У любой сущности есть жизненный цикл. Любое подмножество экземпляров сущностей включает значение временной метки. Любая сущность идентифицируется суррогатными ключами. Этого достаточно, чтобы построить логически корректную модель. Берёте карандаш и рисуете зависимости. Отсюда, кстати, просто рисуется и модель регистрации изменений.Там свои проблемы. Как обеспечить не пересечение временных интервалов на уровне таблицы? Если есть "начало" и "конец". Как обеспечить не обязательное значениe (null) поля "конец" только для одной! строки на уровне таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 19:42
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
Реляционными методами такие проблемы не решаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 19:45
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
придется прямой доступ к таблицам закрыть и писать свой АПИ (процедуры) для доступа к данным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2014, 19:54
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
> Там свои проблемы. "Там" нет никаких "своих проблем". Тупо реляционная структура. Проблемы есть при регистрации связанных изменений. Но вас пока это не должно беспокоить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.05.2014, 11:05
|
|||
|---|---|---|---|
Зло нормализации |
|||
|
#18+
Relic HunterКак обеспечить не пересечение временных интервалов на уровне таблицы? Если есть "начало" и "конец". Как обеспечить не обязательное значениe (null) поля "конец" только для одной! строки на уровне таблицы? Реляционными методами такие проблемы не решаются. Какие-то у вас убогие реляционные средства. О! Кстати! Блин! Наконец-то я нашёл применение для mssql-ного unique constraint ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.05.2014, 11:05
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
Relic HunterНу как? Есть в таблице PK (сурогат) и АК (код клиента). А зачем Вам уникальное поле код клиента - чтобы нельзя было вставить второго клиента с тем же кодом? Ну так это решается уникальностью сочетания полей - например, КодКлиента + ДатаОкончания актуальности. vmag повторить фрагмент схемы БД Документ + Родительские таблицы) и кидать туда окончательный вариант документа и параметров Я, кстати, предлагал совсем не это ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.05.2014, 11:58
|
|||
|---|---|---|---|
Зло нормализации |
|||
|
#18+
Кот МатроскинЯ, кстати, предлагал совсем не это ;) Да какая разница, смысл то в том, что нужно после подписания договора фиксировать состояние этого договора, чтобы оно где то хранилось в неизменном электронном виде для просмотра, дабы не лазить лишний раз в сейф, по этому вытекает, что должна быть архивная часть для хранения окончательных документов, а все остальные действия ведут к парадоксу типа: с девушкой никто не занимается сексом потому, что прыщики на попе, а прыщики на попе потому, что с девушкой никто не занимается сексом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.05.2014, 16:53
|
|||
|---|---|---|---|
|
|||
Зло нормализации |
|||
|
#18+
vmagКот МатроскинЯ, кстати, предлагал совсем не это ;) Да какая разница разница существенная 1. Сохраняется состояние не для каждого документа (100 раз в день одно и то же), а тогда, когда одна из сущностей, на которые ссылается документ, меняется 2. История изменений позволяет решать и другие задачи, кроме сохранения неизменного состояния проведенных документов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&mobile=1&tid=1540896]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
166ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 520ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...