• Взаимосвязи объектов-сущностей (entities) в ORM Doctrine2

    @Vampiro
    В отличии от привычного вам "слоя SQL запросов", Доктрина не стремится сохранять в БД каждое изменение при первом же чихе пользователя. Изменяйте сущности в пределах разумного, затем один раз обновите все это в хранилище одним flush(). Это правильно и нормально, когда ваш скрипт в начале работы делает select'ы, а в конце — update/delete. И неправильно, когда по ходу работы скрипта в базу летит пачка запросов на модификацию разных полей в одной и той же табличке. Вначале немного ломает, но подиссонируете и попустит =)
    Ответ написан
  • XenServer vs Proxmox

    ayambit
    @ayambit
    Во первых, вариантов больше. Есть еще бесплатные:
    1) Virtualbox (я писал в Оракл, спрашивал, пока и правда бесплатно)
    2) VMware vSphere Hypervisor™ (ESXi)
    3) Hyper-V

    Во вторых, вы сравниваете не гипервизор, а системы управления, однако зря. Потому что Windows на OpenVZ поставить нельзя. Однако Proxmox VE умеет работать не только с OpenVZ, но еще и с KVM, поэтому вам он годится.

    Однако, для того чтобы полностью ответить на ваш вопрос, нужно больше информации. Вопросы:
    1) С какой целью будете использовать виртуализию? Для производства, для разработки?
    2) Нужно ли будет делегировать доступ к виртуальным машинам? Если да, то кому и какой?
    3) Сколько будет физических серверов под виртуализацию? Планируется ли кластер? Если да, то планируется ли дисковая полка?

    4) Сколько будет виртуальных машин?

    4) планируете ли брать дисковую полку на iSCSI для Live Migration?
    5) планируете ли использовать проброс устройств в гостевые машины, примеры — сетевая карта или
    Ответ написан
  • Для чего нужна ORM?

    freeAKK
    @freeAKK
    ORM нужен тогда, когда время жизни объектов выборки сильно больше чем время самой выборки. В таких случаях затраты на выборку объектов со всеми потрохами (JOIN-ы) незначительно сказываются на скорость, а сохранить состояния объектов очень просто. Т.е. потребность в ORM возникает в «долгоживущих» программах, в которых РСУБД это просто место, где мы можем сохранить свои объекты.
    В случаях, когда нужно отработать быстро, sql (DBAL) незаменим.
    Ответ написан
  • Для чего нужна ORM?

    Вы не путаете ORM с DBAL? ORM это не технология замены SELECT * FROM goods WHERE cost < 100.00 на $db->select()->from('goods')->where('cost < 100.00'). ORM это способ задания связи объектов и РСУБД. По сути позволяет абстрагироваться от способа хранения объектов вообще, с лёгкостью переходя от SQL к NoSQL, memcache, файлам или REST/RPC API на удалённом сервере, оперируя на уровне модели (если говорить о MVC и т. п.) простыми plain old objects, а их персистентность отдать контроллеру. Не $db->select()->from('goods'),, не mysql_query('SELECT * FROM goods'), а $goodsRepository->findAll(), а уж будет репозиторий формировать SQL запрос, читать файлы или память, а может стучаться на Гугл и парсить его вывод — его, репозитория, личное дело (а также разработчика(ов), отвечающих за подсистему хранения).

    Кроме того ORM, как правило не исключает обращение к БД на уровне произвольных SQL запросов, оно лишь преобразуют результаты этих запросов в объекты модели предметной области (и наоборот), которые ничего не знают (в идеале) о таблицах, WHERE, HAVING и т. п.

    ORM это не только инструмент архитектурного разделения областей ответственности объектов и классов приложения, а также инструмент облегчения разделения труда разработчиков: кто хорошо шарит в SQL вообще и особенностях конкретного движка в частности — работает по «ту сторону» ORM, оптимизирует его как хочет, может нормализовывать и денормализовывать, например; кто хорошо разбирается в дебетах и кредитах — работает с plain old objects в терминах предметной области и может вообще ничего не зная об SQL, ему лишь нужно знать, что он всегда может получить объект или их коллекцию обратившись к методам вроде findById() или findAll() и сохранить результат работы методом save() или flush().
    Ответ написан
  • Для чего нужна ORM?

    @smartly
    Чтобы писать запросы на своём языке программирования, а не интегрировать в исходник ещё один язык.
    Ответ написан