powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Должна ли быть согласованность данных в базе "по умолчанию"
25 сообщений из 69, страница 1 из 3
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614218
avec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коротко опишу ситуацию. Имеется некая база данных + пользовательский интерфейс по работе с некоей информацией. Функционал разработан по согласованному с бизнесом ТЗ.

База в части реализации этих требований представляет собой несколько таблиц - основная сущность (например, документ) и подчиненные "1 к N" сущности (история изменений по документу, созданные проводки по документу и т.п.).

По прошествии нескольких лет пришла мысль анализировать то что хранится в этих таблицах. Выяснилось, что в БД никаких ссылочных ограничений целостности не сделано, внешние ключи отсутствуют. В программе были реализованы только те ограничения, которые явно прописаны в ТЗ. Но например, имеются изменения по документу, а самого документа в системе нет (удален).

Завожу баг на эту систему, в ответ получаю, что меня просят указать в нем требование, которое не выполнено. "Если такого нет, то значит система работает штатно".

У меня волосы шевелятся от такого подхода, но не могу найти что возразить... Должна ли база быть в согласованном состоянии, с нормально прописанными хотя бы элементарными констрейнтами, внешними ключами, даже несмотря на то что в ТЗ такого ПРЯМОГО требования нет?
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614242
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avec,

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

1. Констрейнты заметно тормозят.
2. Сильно мешают некот. действиям (допустим перезалить к-л данные)
3. Временное отключение констрейнтов затруднено, т.к. требует полномочий и может создать тормоза и блокировки.
4. От искажений информации констрейнты спасают лишь частично.
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614258
avec в БД никаких ссылочных ограничений целостности не сделано, внешние ключи отсутствуют.
Вот это халтура !
Первичные ключи-то хоть на месте ?
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614268
avec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Криптоаналитег,

Первичные есть. Хотя в ТЗ про них также не говорилось, могли бы не делать.
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614270
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avec,

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

Позицию услышал. Но в данном случае мне кажется, в ТЗ должна быть какая-то такая фраза, что внешние ключи не делаются осознанно, и привести в качестве обоснования одну или несколько из указанных причин. Если этого не сделано, то PK, FK - все же ИМХО должны быть.
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614298
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Функционал разработан по согласованному с бизнесом ТЗ.

Формально целостность данных отдельно ничем не регламентируется: целостность - результат реализации требований задачи и естественных логических ограничений.

Можно, конечно, попробовать обосновать отсутствие логического ограничения как ошибку реализации, но в практических перспективах сильно сомневаюсь.

Хороший пример, почему не стоит иметь дела с баранами, кстати.
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614327
R7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
R7
Гость
В старой Галактике под MSSQL тоже не было констрейнтов. 2500 таблиц ни ПК ни ФК. Целостность рулилась в триггерах, там же БЛ.
Такой подход имеет место быть. Но я бы от него бежал.
Но например, имеются изменения по документу, а самого документа в системе нет (удален).
Вот на это следует обратить внимание. Если мусор от удаленных объектов влияет на БП, отчеты, аналитику, итд, найдите это влияние. И тыкайте им в морду.
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614336
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avecв ТЗ должна быть какая-то такая фраза, что внешние ключи не делаются осознаннТЗ пишут люди, понятия не имеющие о FK....PK
Там только функциональные требования.
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614340
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
R7Вот на это следует обратить внимание. Если мусор от удаленных объектов влияет на БП, отчеты, аналитику, итд, найдите это влияние. И тыкайте им в морду.
+1
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614370
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avecПо прошествии нескольких лет пришла мысль анализировать то что хранится в этих таблицах. Выяснилось, что в БД никаких ссылочных ограничений целостности не сделано, внешние ключи отсутствуют. В программе были реализованы только те ограничения, которые явно прописаны в ТЗ. Но например, имеются изменения по документу, а самого документа в системе нет (удален).

Завожу баг на эту систему, в ответ получаю, что меня просят указать в нем требование, которое не выполнено. "Если такого нет, то значит система работает штатно".


кому понадобилось анализировать? зачем? она работает?

думаю все верно сказали - систему может через месяц-два выкинуть собираются, а тут "завожу баг".
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614411
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosavec,

тут умные товарищи наставивали что "не должна", типа никто ниче никому не должен если это явно не затребовано
не написал что интерфейс пользователя должен быть на русском, то могу спокойно на азербайджанском и все будет ок

ViPRos, перегибаете. В ТЗ всегда есть некие границы контекста (как и в любом договоре).
Если в ТЗ указана область применения ПО, разработчик может сам сделать выводы, какой нужен язык. А может сделать и ещё вписать в ТЗ. А может и не сделать никаких выводов - и реализовать на айзербайджанском. И тут действительно всё зависит от степени квалификации и сложившихся отношений обеих сторон.

ТС завёл две темы, но поддержу и здесь:

avec...
Функционал разработан по согласованному с бизнесом ТЗ.
...
По прошествии нескольких лет пришла мысль анализировать то что хранится в этих таблицах.
...


Посмотрите ещё раз:
Несколько лет назад были сформулированы требования.
Несколько лет система работала.
Сегодня вам в голову пришла мысль.
Кто несколько лет назад должен был отвечать за то, чтобы система смогла поддержать вашу сегодняшнюю мысль?
Те кто должен был отвечать - подписали ТЗ (с обеих сторон). У них же проблем нет? :)

avec...
У меня волосы шевелятся от такого подхода, но не могу найти что возразить...
...
Должна ли база быть в согласованном состоянии, с нормально прописанными хотя бы элементарными констрейнтами, внешними ключами, даже несмотря на то что в ТЗ такого ПРЯМОГО требования нет?
База никому ничего не должна.
Спроектирована она в меру понимания заказчика и квалификации разработчика.
И даже работает! (самый главный показатель )
Может быть, разработчики даже задавали вопрос - что делать с удалёнными документами? Сохранившаяся история редактирования без самого документа - просто мусор, который для реализации вашей мысли при анализе вы можете спокойно игнорировать.
Вам это не нравится? Выбиваете финансирование, пишете новое ТЗ, получаете новую систему для реализации "пришедших мыслей" и не бередящую ваше чувство прекрасного.
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614416
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, опечатался. Конечно же, правильно: азербайджанском .
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614420
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123R7Вот на это следует обратить внимание. Если мусор от удаленных объектов влияет на БП, отчеты, аналитику, итд, найдите это влияние. И тыкайте им в морду.
+1
+2. Жалко только, ничего существенного ТС не найдёт.
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614428
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avecНо, например, имеются изменения по документу, а самого документа в системе нет (удален).

Отлично! Есть "журнал", по которому можно увидеть, что документ таки был!

avecЗавожу баг на эту систему.

Можете привести цитату, как сформулирован баг?

avecДолжна ли база быть в согласованном состоянии

В чём её "несогласованность"? Может, пробелма в том, что у вас своё понимание этой самой "согласованности"?!
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614513
avec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойavecДолжна ли база быть в согласованном состоянии

В чём её "несогласованность"? Может, пробелма в том, что у вас своё понимание этой самой "согласованности"?!

У меня понимание такое http://ru.wikipedia.org/wiki/Ссылочная_целостность .
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614547
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avecАнатоЛойпропущено...

В чём её "несогласованность"? Может, пробелма в том, что у вас своё понимание этой самой "согласованности"?!

У меня понимание такое http://ru.wikipedia.org/wiki/Ссылочная_целостность .
1. В ТЗ было написано, что база данных этой системы (не СУБД, а именно БД!) должна быть реляционной?
2. Почему вы считаете, что отсутствие ссылочной целостности является "ошибкой" в вашей системе и должно быть исправлено? Потому что так написано в Википедии?
3. Я приводил пример с историей изменения документов и удалённым документом. Как быть в ситуации "удаление документа", если есть внешний ключ из истории изменений на сам документ?
а) удалять историю изменения,
б) не удалять документ, а помечать как удалённый (и тщательно учитівать этот факт во всей бизнес-логике);
в) прописывать в истории "левый ид", делать ещё какие-то пометки и телодвижения, чтобы констрейнт не ругался, и таки удалять строку с документом,
г) ваш вариант....

И, самое главное, для чего всё это: удовлетворить ваше чувство прекрасного за счёт денег бизнеса и потраченного времени разработчиков ?
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614694
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой,

а) удалять историю изменения, - Дать возможность
б) не удалять документ, а помечать как удалённый (и тщательно учитівать этот факт во всей бизнес-логике); - Дать возможность
в) прописывать в истории "левый ид", делать ещё какие-то пометки и телодвижения, чтобы констрейнт не ругался, и таки удалять строку с документом, - Дать возможность
г) ваш вариант.... - Дать возможность
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614844
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosАнатоЛой,

а) удалять историю изменения, - Дать возможность
б) не удалять документ, а помечать как удалённый (и тщательно учитівать этот факт во всей бизнес-логике); - Дать возможность
в) прописывать в истории "левый ид", делать ещё какие-то пометки и телодвижения, чтобы констрейнт не ругался, и таки удалять строку с документом, - Дать возможность
г) ваш вариант.... - Дать возможность
Вместо 1 чел./дня - имеем 5 чел./дней.
Кто заплатит за 4 чел./дня?
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614846
avec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойViPRosАнатоЛой,

а) удалять историю изменения, - Дать возможность
б) не удалять документ, а помечать как удалённый (и тщательно учитівать этот факт во всей бизнес-логике); - Дать возможность
в) прописывать в истории "левый ид", делать ещё какие-то пометки и телодвижения, чтобы констрейнт не ругался, и таки удалять строку с документом, - Дать возможность
г) ваш вариант.... - Дать возможность
Вместо 1 чел./дня - имеем 5 чел./дней.
Кто заплатит за 4 чел./дня?

не согласен с такой оценкой. Статус "удален/не удален" ввести - это одно дополнительное поле + корректные условия в логике. Если этому принципу подчиняется вся разработка, то условия "WHERE RecordStatus <> 'D'" пишутся разработчиками на автомате. Констрейнты в DDL описать - тоже не ахти какая сложность. Нет тут "значительного" увеличения трудоемкости. А уважения к создателям прибавляет.

P.S. Конечно, базу данных можно использовать, храня в ней одну таблицу с одним полем и все значения писать туда с разделителем "точка с запятой". А че, работать же будет...
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614858
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойViPRosАнатоЛой,

а) удалять историю изменения, - Дать возможность
б) не удалять документ, а помечать как удалённый (и тщательно учитівать этот факт во всей бизнес-логике); - Дать возможность
в) прописывать в истории "левый ид", делать ещё какие-то пометки и телодвижения, чтобы констрейнт не ругался, и таки удалять строку с документом, - Дать возможность
г) ваш вариант.... - Дать возможность
Вместо 1 чел./дня - имеем 5 чел./дней.
Кто заплатит за 4 чел./дня?
Заказчик, если ему обяснить зачем эти 4 дня
но, если вы НЕ хотите заработать, то можете воще ничего не делать :)
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614859
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avecАнатоЛойпропущено...

Вместо 1 чел./дня - имеем 5 чел./дней.
Кто заплатит за 4 чел./дня?

не согласен с такой оценкой. Статус "удален/не удален" ввести - это одно дополнительное поле + корректные услови я в логике. Если этому принципу подчиняется вся разработка , то условия "WHERE RecordStatus <> 'D'" пишутся разработчиками на автомате
Констрейнты в DDL описать - тоже не ахти какая сложность.
Нет тут "значительного" увеличения трудоемкости.

Ну да, конечно. Сколько нужно тестерам проверить на предмет того, что во всех выборках теперь не всплывают удалённые документы)?!
И это вы только один из 4-ёх вариантов расписали.

avec А уважения к создателям прибавляет Кто против? У всех всегда получается убедить заказчика, что задача/проект займёт не 1 чел./день, а 2? А если счёт не на дни, а на месяцы?
У ТС речь идёт про конкретный случай, и не стоит через несколько лет доказывать, что те вчерашние были неправы, поэтому давайте-ка, сегодняшние, на ровном месте делайте бесплатно работу...

avecP.S. Конечно, базу данных можно использовать, храня в ней одну таблицу с одним полем и все значения писать туда с разделителем "точка с запятой". А че, работать же будет...
Жарким летом кондёр в машине тоже уважения таксисту добавляет, только почему-то не все за кондёр готовы доплачивать.
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614860
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с клентом надо работать по принципу - дай палец, руку отяпает - а не фигней заниматься
...
Рейтинг: 0 / 0
Должна ли быть согласованность данных в базе "по умолчанию"
    #38614861
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosАнатоЛойпропущено...

Вместо 1 чел./дня - имеем 5 чел./дней.
Кто заплатит за 4 чел./дня?
Заказчик, если ему обяснить зачем эти 4 дня
но, если вы НЕ хотите заработать, то можете воще ничего не делать :)
Я не про концепцию в целом, я про конкретный случай, в котором уже имеем свершившийся факт на входе :).
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 1 из 3
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Должна ли быть согласованность данных в базе "по умолчанию"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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