Антипаттерны SQL. Как избежать ловушек при работе с базами данных
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  Антипаттерны SQL. Как избежать ловушек при работе с базами данных

Nikita Kehlerr
Nikita Kehlerrдәйексөз келтірді1 жыл бұрын
Эксперт — это человек, который совершил все возможные ошибки в очень узкой специальности. Нильс Бор
3 Ұнайды
Комментарий жазу
Руслан
Русландәйексөз келтірді2 жыл бұрын
Однако с изменениями в файлах, расположенных вне базы данных, все иначе. Если вы удаляете файл, он немедленно становится недоступным для других клиентов. И если изменить содержимое файла, то другие клиенты увидят эти изменения сразу же — вместо предыдущего содержимого файла, отображаемого, пока транзакция не подтверждена.
1 Ұнайды
Комментарий жазу
саша к.
саша к.дәйексөз келтірді1 апта бұрын
Вместо FLOAT и его родственников используйте тип данных SQL NUMERIC или DECIMAL для дробных чисел с фиксированной точностью. Rounding-Errors/soln/numeric-columns.sql ALTER TABLE Bugs ADD COLUMN hours NUMERIC(9,2); ALTER TABLE Accounts ADD COLUMN hourly_rate NUMERIC(9,2); Эти типы данных хранят числовые значения с точностью (precision), указанной в определении столбца.
Комментарий жазу
саша к.
саша к.дәйексөз келтірді1 апта бұрын
1/3 + 1/3 + 1/3 = 1.000 0.333 + 0.333 + 0.333 = 0.999 Даже если увеличить точность, вы все равно не сможете сложить три приближения 1/3, чтобы получить точное значение 1.0. Этот компромисс неизбежен при использовании конечной точности для представления чисел с повторяющимися цифрами. 1/3 + 1/3 + 1/3 = 1.000000 0.333333 + 0.333333 + 0.333333 = 0.999999
Комментарий жазу
саша к.
саша к.дәйексөз келтірді1 апта бұрын
Цель: дроби вместо целых чисел Целые числа — полезный тип данных, но в нем могут храниться только такие числа, как 1, 327 или –19. Он не позволяет представлять дроби, например 2.5. Если вы работаете с числами с точностью, превышающей точность целого типа, вам понадобится другой тип данных. Например, денежные суммы обычно представляются целыми числами с двумя знаками в дробной части — $19.95 и т.д. Таким образом, требуется хранить числовые значения, которые не являются целыми, и использовать их в арифметических вычислениях. Еще одна цель, которая обычно явно не формулируется: результаты арифметических вычислений должны быть верными.
Комментарий жазу
саша к.
саша к.дәйексөз келтірді3 апта бұрын
О хранении иерархических данных и работе с ними в SQL можно еще много узнать. Есть хорошая книга Джо Селко (Joe Celko), в которой описаны иерархические запросы, — «Trees and Hierarchies in SQL for Smarties» [Cel04]. Другая книга с описанием деревьев и даже графов — «QL Design Patterns»[Tro06] Вадима Тропашко (Vadim Tropashko). Она написана более формальным, академическим языком.
Комментарий жазу
Анастасия
Анастасиядәйексөз келтірді1 ай бұрын
Тогда у вас появляется другая идея: загрузить все комментарии и собрать из них древовидные структуры в памяти приложения, используя традиционные алгоритмы деревьев, которые вы изучали в школе. К сожалению, редакторы сайта говорят, что ежедневно на сайте публикуются десятки статей и к каждой статье могут быть сотни комментариев. Сортировать миллионы комментариев каждый раз, когда кто-то просматривает сайт, нецелесообразно
Комментарий жазу
Анастасия
Анастасиядәйексөз келтірді1 ай бұрын
Некоторые разработчики не любят запросы, содержащие соединения; они считают их слишком медленными. Однако этот запрос использует индексы намного эффективнее, чем решение, приведенное выше в разделе «Антипаттерн: форматирование списка, разделенного запятыми
Комментарий жазу
Анастасия
Анастасиядәйексөз келтірді1 ай бұрын
Аналогичным образом, если приложение получает данные, разделенные запятыми, из другого источника и вы просто хотите сохранить весь список в базе данных и позднее прочитать его точно в таком же виде, разделять значения не обязательно
Комментарий жазу
Анастасия
Анастасиядәйексөз келтірді1 ай бұрын
Соединение двух таблиц в таких выражениях делает использование индексов полностью невозможным, так что производительность снова страдает
Комментарий жазу