Билл КарвинАнтипаттерны SQL. Как избежать ловушек при работе с базами данных
Язык SQL необходим для работы со структурированными данными. Программисты, прекрасно знающие свой любимый язык (Java, Python или Go), не могут разбираться во всем, и часто не являются экспертами в SQL. Это приводит к появлению антипаттернов, — решений, которые на первый взгляд кажутся правильными, но со временем создают всё больше проблем.
Научитесь выявлять и обходить многие из этих распространенных ловушек! Проведите рефакторинг унаследованного кошмара и превратите его в жизнеспособную модель данных!
Примеры SQL-кода основаны на версии MySQL 8.0, но в тексте также упоминаются другие популярные РСУБД. В примерах кода используется Python 3.9+ или Ruby 2.7+.
Отличная книга. Содержит распространенные антипаттерны, объясняет не только, чем они плохи, но и когда допустимы и чем их заменить. Очень практичная и полезная.
Однако с изменениями в файлах, расположенных вне базы данных, все иначе. Если вы удаляете файл, он немедленно становится недоступным для других клиентов. И если изменить содержимое файла, то другие клиенты увидят эти изменения сразу же — вместо предыдущего содержимого файла, отображаемого, пока транзакция не подтверждена.
Прежде чем браться за написание кода, следует решить, какая информация должна храниться в базе данных, и выбрать лучший способ упорядочить и связать эти данные. В частности, на этом этапе проводится планирование таблиц баз данных, столбцов и отношений между ними.