|
|
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
Здравствуйте Не знал даже как правильно написать тему для данной проблемы, поэтому заранее прошу простить Решая реальную задачку столкнулся с такой бедой: Есть, предположим, табличка "Документ", и много справочников. Эта табличка содержит ссылки на справочники. И вот если какой то из них будет изменен, то старые данные на которые ссылался этот "Документ" будут потеряны(ведь у нас там только ссылка а данные в справочники поменялись)... Как же сделать так, чтобы эти данные никуда не пропадали при изменении справочников. Я для себя вижу два варианта: 1) Сказать пользователю, что мол нельзя так делать и надо создавать новый справочник 2) Дублировать поля справочников в "Документе" и при создании "Документа" копировать просто инф. из справочников. 1й способ думаю полный бред... 2й еще куда ни шло, но пугают те самые фундаменты: мол БД для того, чтобы сократить объем хранимой информ. и не дублировать ее и тд. и тп. Дублирования будет не так уж много ибо БД прямо скажем маленькая, но вот поддерживать потом как, если она начнет разрастаться... Уверен есть способы много лучше! Подскажите как быть. Литературой, советом, чем угодно! Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 17:37 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
Погугли "периодические реквизиты". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 17:41 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
doofy, Как по вашему чем отличается справочник от документа?.. Ответив на этот вопрос сможете понять что у вас не так. Если наугад то неправильная организация, а не структура БД. Хотя это только догадка а не факт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 17:56 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
Злой Бобр, нормальная догадка, не то что догадки товарисча до тебя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 17:57 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
Злой Бобр, авторКак по вашему чем отличается справочник от документа? Чем по-вашему? авторОтветив на этот вопрос сможете понять что у вас не так. Судя по всему вы знаете? К чему загадки? Можете сказать что не так чего уж там... авторнеправильная организация, а не структура БД. Ну так я не отрицаю, речь как раз о том, что я не знаю как правильно, да и вообще каких-то методик де-факто или что-то в этом роде. В качестве примера могут быть такие таблички: Документ - Заказы Справочник - Книги Изменилось название у книги(так вот захотели) вот и все дела, и в "старом" заказе уже не та книга, что была когда-то. Это конечно не моя база, но для примера сгодится думаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:12 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
doofy, Сибиряков Вам дал вполне практичный совет (правда имхо именно такие слова в гугле быдут выдавать много 1С-а, что не добавит ясности) Если кратко - у элемента справочника вводятся периоды актуальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:21 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
doofyИзменилось название у книги(так вот захотели) Хренасе у вас хотелки... А весь напечатанный тираж отозвали чтобы поменять обложку?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:27 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, авторХренасе у вас хотелки... А весь напечатанный тираж отозвали чтобы поменять обложку?.. "хотелки" не мои) Так и знал, что будут привязываться к конкретному примеру. Нельзя ли абстрагироваться от него? Ну или взять за данность - такая вот "хотелка"... это же не точь в точь как оно есть, не нравятся книги возьмите что-нибудь другое "Клиенты", например, человек, который сменил фамилию, так будет проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:33 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
doofyDimitry Sibiryakov, авторХренасе у вас хотелки... А весь напечатанный тираж отозвали чтобы поменять обложку?.. "хотелки" не мои) Так и знал, что будут привязываться к конкретному примеру. Нельзя ли абстрагироваться от него? Ну или взять за данность - такая вот "хотелка"... это же не точь в точь как оно есть, не нравятся книги возьмите что-нибудь другое "Клиенты", например, человек, который сменил фамилию, так будет проще? да пофиг, пусть хоть пол сменит, тебе то какое дело? ты ж не обязан следить за его жизнью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:40 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
или все ж обязан может? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:42 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
ViPRos, Ваша правда! ) Пускай меняет)) Не обязан ему ничем. Но ведь задачу то надо как то решить Простите, я не совсем понимаю о чем вы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:44 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, периоды актуальности...что то в этом может и есть...правда пока что не могу понять как мне это поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:45 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин у элемента справочника вводятся периоды актуальности. +1 или более рассширенный вариант - 2 таблицы - собственно справочник с неизменными элементами - история изменений элементов с периодом актуальности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 20:24 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
doofy, "Вам шашечки или ехать?" (с) не мое но в тему. Я то знаю чем отличается. Но проблема ведь не у меня. Если думаете что вам тут начнут разжевывать теорию - очень ошибаетесь. За теорией обращайтесь к учителям. Тут только могут послать в правильном направлении. Поэтому если хотите посыла - выкладывайте что у вас и как. По другому думаю никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 20:29 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
doofy, наоборот, номер 2 --полный бред. надо делать 1. к тому же не парься так сильно, 90% справочников никогда не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 20:44 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
doofy, введите таблицу "история изменений" - id - id записи ваших таблиц - имя поля - старое значение - новое значение - дата, время изменения периодические реквизиты не спасут от отслеживания изменений, например, наименование справочника. изменения ссылки на справочник - решат, но не само изменение полей! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 00:07 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
Есть товар Велосипед трехколесный металлический у енго есть ставка НДС = 10% вдруг наш парламент решает, что нужно применить 18% это просто вариант, сложнее: этот велик возят из-за рубежа и разные таможни по-разному (ставки НДС) его растомаживают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 08:17 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
Уважаемый авторвведите таблицу "история изменений" - id - id записи ваших таблиц - имя поля - старое значение - новое значение - дата, время изменения Я бы сделал так: для каждой таблицы сделать историческую таблицу: - id - id записи ваших таблиц - значение - дата начала, - дата окончания -время изменения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 10:06 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
SergueiУважаемый авторвведите таблицу "история изменений" - id - id записи ваших таблиц - имя поля - старое значение - новое значение - дата, время изменения Я бы сделал так: для каждой таблицы сделать историческую таблицу: - id - id записи ваших таблиц - значение - дата начала, - дата окончания -время изменения Что Вы выиграете от того что это будет отдельная таблица? Запросы на получение нужного значения будут, очевидно, сложнее. Вероятность коллизии в данных - выше. Что будет проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 12:37 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
doofy, для меня бы был основной вопрос такой: надо ли знать, что "Изделие #1" из справочника в определенный момент было переименована в "Изделие #2", а потом еще и в "Изделие №3". Если да - заморачивайтесь с периодическими реквизитами, как вам и советовали выше. Вариантов как это сделать - тысячи, от доп таблиц до просто ссылок на родительскую запись при "клонировании" и использовании одной таблицы. Если нет - делайте вместо редактирования - дублирование записи с новыми параметрами/реквизитами в справочнике и запретите редактирование справочников как таковое. Имхо самый простой вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 13:01 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
Mikle83doofy, для меня бы был основной вопрос такой: надо ли знать, что "Изделие #1" из справочника в определенный момент было переименована в "Изделие #2", а потом еще и в "Изделие №3". хранить все не нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 14:42 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
а вот у меня вопрос - сколько записей в справочнике, связанном с "документом" ? Наверное не одна (иначе это был бы не справочник), а если не одна то ссылка в Документе должна на быть на конкретную запись из справочника. Долее с правами доступа к этой записи : при попытке удалить - предупреждение: имеются связанные документы), при попытке редактировать - предупреждение о наличии связанных документов (при большом количестве пользователей функцию редактирования в таком случае вообще исключить нужно). Другими словами - однажды созданные связи должны оставаться в первозданном виде, до тех пор пока не будут изменены из первоначальной точки создания ( т.е. в нашем случае только из Документа) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 16:05 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
Злой БобрТут только могут послать в правильном направлении. А могут и в не правильном) Вот такая суровая реальность)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 08:46 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
doofyDimitry Sibiryakov, авторХренасе у вас хотелки... А весь напечатанный тираж отозвали чтобы поменять обложку?.. "хотелки" не мои) Так и знал, что будут привязываться к конкретному примеру. Нельзя ли абстрагироваться от него? Ну или взять за данность - такая вот "хотелка"... это же не точь в точь как оно есть, не нравятся книги возьмите что-нибудь другое "Клиенты", например, человек, который сменил фамилию, так будет проще? Тут лучше не абстрагироваться, а как раз наоборот, давайте конкретный пример. У каждого случая свое решение. Поменяли НДС? Храните НДС в заказе, а что в этом страшного. Клиент сменил ФИО? А зачем вам ФИО? Чтобы светить в списке заказов? Да и хрен с ним, пусть новое ФИО светится. Или для того чтобы какой-нибудь бланк заказа от заднего числа печатался с тем же ФИО, которое было на ту дату? Для печати я бы вообще хранил реквизиты в отдельной таблице. Т.е. при печати они сохраняются в этой таблице и печатаются из нее. Если это конечно критично в вашем случае. Или просто сохраняйте конкретный распечатанный документ (pdf). У кредитного продукта поменялась ставка, а по старым кредитам ставка должна остаться прежней? Храните ставку в конкретном договоре клиента. Ну и т.д. А в каких-то случаях, действительно, периодический справочник сгодится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 08:57 |
|
||
|
Дублирование информации в таблицах
|
|||
|---|---|---|---|
|
#18+
doofyЕсть, предположим, табличка "Документ", и много справочников. Эта табличка содержит ссылки на справочники. И вот если какой то из них будет изменен, то старые данные на которые ссылался этот "Документ" будут потеряны(ведь у нас там только ссылка а данные в справочники поменялись)... Как же сделать так, чтобы эти данные никуда не пропадали при изменении справочников. Я для себя вижу два варианта: 1) Сказать пользователю, что мол нельзя так делать и надо создавать новый справочник 2) Дублировать поля справочников в "Документе" и при создании "Документа" копировать просто инф. из справочников. Может чота не понял, но по-моему все классически просто: в таком случае (при изменении справочника) делается не прямой апдейт записей, а текущая запись становится архивной (например проставляется дата архивации или поле-признак), и добавляется новая запись, т.о. все записи документов будут ссылаться на прежние данные, а для новых документов выводим только текущие актуальные записи справочника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 10:33 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39061609&tid=1540471]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 196ms |

| 0 / 0 |

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