Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Должна ли быть согласованность данных в базе "по умолчанию" / 25 сообщений из 69, страница 1 из 3
14.04.2014, 14:26
    #38614218
avec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Должна ли быть согласованность данных в базе "по умолчанию"
Коротко опишу ситуацию. Имеется некая база данных + пользовательский интерфейс по работе с некоей информацией. Функционал разработан по согласованному с бизнесом ТЗ.

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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