Часто, перед разработчиками стоит задача сохранить сложный объект в базе. Самый правильный способ: определить таблицы для каждой сущности входящей в наш объект таблицу и сохранять постепенно в нужном порядке, и это хорошо.
Но как правило, это и плохо, потому что медленно, ведь нужно сделать отдельно для каждого входящего в состав объекта insert|select|update|delete. Если эта структура редко нужна по кусочкам и часто целиком, более правильным решением будет BLOB.
Точное решение просто сериализовать наш большой объект и сохранять как обычный byte[] в базе. Выиграшей тут несколько:
1. Любая операция с большим объектом это одна операция для базы.
2. В коде не нужно кодировать сохранение удаление и выборку этой структуры.
Многие думают что такое решение будет заведомо медленнее, но это неверно, скажем для дерева меню в 1 родитель и 5 дочерних элементов, код использующий BLOB будет не только не уступать обычному коду, но и выигрывать в среднем 10%, для MySQL, вот полюбуйтесь сами
Комментариев нет:
Отправить комментарий