ORM vs SQL ¿Cuándo usar cada uno? 🤔

แชร์
ฝัง

ความคิดเห็น • 66

  • @CodelyTV
    @CodelyTV  3 ปีที่แล้ว +10

    ¿Sueles utilizar ORM? ¿Cuando prefieres utilizarlo y cuándo no?

    • @balapy
      @balapy 3 ปีที่แล้ว

      ORM cuando a través de consultas solo accedes a un dominio funcional y la base de datos de éste dominio está correctamente normalizada, sino SQL

  • @sancanella97
    @sancanella97 3 ปีที่แล้ว +8

    Justo hoy estaba empezando un proyecto pequeño en mi empresa y estaba investigando sobre si usar o no ORM 🤗

  • @rodrigovictorcondoriquisbe9431
    @rodrigovictorcondoriquisbe9431 3 ปีที่แล้ว +7

    SQL es hermoso, tanto para proyectos grandes como pequeños; tienes todo el control de las consultas y un gran rendimiento en su ejecución. Los ORM puede darte desagradables sorpresas si no los utilizas correctamente en bases que escalen demasiado.

  • @kiriitoh
    @kiriitoh 3 ปีที่แล้ว +2

    8:16
    A parte del argumento que da Dani sobre los condicionales en las consultas, otra ventaja muy importante y que destacaría es que usando el queryBuilder nos podemos abstraer de la tecnología concreta de base de datos ya que DBAL sería el encargado de montar la query para ya sea MariaDB, PostgreSQL... etc.
    Por otro lado, si usamos el approach de SQL en raw, nos estamos acomplando a esa tecnología en concreto para la cual hemos escrito la consulta (sí es cierto que para consultas sencillas de SQL no importaría ya que serían compatibles).
    ¡👍🏻 Muy buen vídeo 👍🏻!

    • @kiriitoh
      @kiriitoh 3 ปีที่แล้ว

      @@flavioe.salasm.9922 Desde luego que los ORM no soportan esas cosas tan específicas; no es el objetivo de un ORM darte un soporte al 100% de la tecnología. Si tienes que hacer cosas manualmente con triggers... pues no tienes muchas alternativas. La verdad es que no soy nada fan de tener lógica en la base de datos; fue un approach muy usado hace años pero creo que ya se ha demostrado la mala escalabilidad de esas soluciones.

    • @vicenteangellopezromero3187
      @vicenteangellopezromero3187 3 ปีที่แล้ว

      @@flavioe.salasm.9922 Una cosa es cargar el servidor de aplicaciones y otra muy distinta es cargar el servidor de bases de datos. Está claro que ​ @K B habla de descargar el servidor de bases de datos y cargar de lógica de negocio al servidor de aplicaciones, con sus balanceos de carga, etc. "Programar del lado del servidor" es programar tanto en el servidor de aplicaciones como en el servidor de bases de datos. Y sí, en el propio DBMS se puede meter lógica a base de procedimientos, funciones, triggers, etc.

    • @adolfocuadros3619
      @adolfocuadros3619 3 ปีที่แล้ว +1

      @@kiriitoh Estoy totalmente de acuerdo contigo, para mí una mala practica es meter lógica de negocios en la base de datos, si una aplicación lo tiene que hacer por temas de rendimiento debería ser su última opción.

  • @victoraguileralara
    @victoraguileralara 3 ปีที่แล้ว

    Increíble, hace unas horas justo estaba buscando información al respecto

  •  3 ปีที่แล้ว

    21:53 excelente! 🥳 Saludos...

  • @migueajm
    @migueajm 3 ปีที่แล้ว

    Gracias por compartir sus experiencias y conocimiento :) esta muy cool su contenido

  • @cermlkdf
    @cermlkdf 9 หลายเดือนก่อน

    se pueden tener las consultas en un procedimiento almacenado y solo llamarlo y enviarle los parámetros, es correcto ?

  • @danielcastillo7133
    @danielcastillo7133 3 ปีที่แล้ว +6

    Pase dos años haciendo casi exclusivamente solo SQL, aprendí un montón de cosas pero... realmente prefiero usar un ORM siempre que este disponible, sobre todo cuando hay varias personas trabajando sobre el mismo código y las tablas tienen relaciones complejas, ademas tampoco se pierde taaaanto rendimiento..

  • @juan_paulino
    @juan_paulino 3 ปีที่แล้ว +10

    Yo llevó desconectado del ecosistema PHP unos años, pero creo recordar que PDO si evita la inyección SQL. De echo es el sustituto de la librería MySQLi que si tiene problemas de inyección SQL.
    ¿No es así?
    En cualquier caso muy interesante el video. 😉

    • @javierchiquitoavellan1666
      @javierchiquitoavellan1666 3 ปีที่แล้ว +2

      Tengo entendido que una manera de evitar inyección sql es con consultas preparadas. Y si, pdo permite realizar eso.

  • @jerkan7
    @jerkan7 3 ปีที่แล้ว +3

    Buen fichaje este Dani ;-)

  • @ing.juandiaz2789
    @ing.juandiaz2789 3 ปีที่แล้ว +1

    HOLA, como Hacemos un proyecto laravel symfony que tiene patrones de diseño y mucha carga de objetos escalable sin quedarse pobre por los recursos en memoria y procesador que se consume al tener el Monolito

  • @elProdigio
    @elProdigio 3 ปีที่แล้ว +2

    Mola que os hayáis puesto de acuerdo en el colORM de la camiseta 😅

  • @cryofrain1935
    @cryofrain1935 3 ปีที่แล้ว +23

    ORM para consultas simples y SQL para consultas pesadas c:

    • @hyiedrax5519
      @hyiedrax5519 3 ปีที่แล้ว

      Gracias:)

    • @hyiedrax5519
      @hyiedrax5519 3 ปีที่แล้ว +1

      Me has ahorrado media hora

    • @roy_c
      @roy_c 3 ปีที่แล้ว

      Para hacer una query simple, para eso me quedo con SQL. Para que añadir mas complejidad para hacer algo simple?

    • @adolfocuadros3619
      @adolfocuadros3619 3 ปีที่แล้ว +1

      @@roy_c ORM por temas de practicidad. y SQL directo por temas de rendimiento.

    • @roy_c
      @roy_c 3 ปีที่แล้ว +1

      @@adolfocuadros3619 depende que sea practicidad para cada caso.
      Para mi un ORM sirve para no perder tiempo, por ejemplo, si tenes muchos cruds. Igual, hace años que no hago cruds ja. O para prototipar algo.

  • @WilfredoTorresAriza
    @WilfredoTorresAriza 3 ปีที่แล้ว +1

    Porfa me pueden aclarar a que se refieren con 'proyecciones' .

  • @gempf
    @gempf ปีที่แล้ว

    pero no entiendo, ellos hacen una consulta a un endpoint y ese enpoint les responde algo ¿y ese "algo" ya se fué a la base de datos? No entendí el paso de mostrarme el endpoint a ir al código, mas o menos 4:30 del video

  •  3 ปีที่แล้ว

    22:45 bien dicho 👍

  • @MiguelPerez-wq1lh
    @MiguelPerez-wq1lh 3 ปีที่แล้ว +1

    hexagonal con ORM y consultas custom, la combinacion y usar cada cosa para lo que esta diseniada es lo idea

  • @emmanuelvalverderamos
    @emmanuelvalverderamos 3 ปีที่แล้ว

    Un curso de diseño u gestión de base de datos (de las más conocidas y open source, como MySQL, o Postgres).

  • @felixcomp
    @felixcomp 3 ปีที่แล้ว

    Excelente video!.

  • @benjamincisneros797
    @benjamincisneros797 3 ปีที่แล้ว

    Que opinan de probar métodos que consultan la base de datos? Por ejemplo con DBUnit o similar

  • @ahnsylimbal6811
    @ahnsylimbal6811 3 ปีที่แล้ว +10

    Yo en lo personal me quedo con lo tradicional, sin ORM y PDO, usando SQL de forma programáticamente, así aprendo de cosas nuevas que puedan surgir en SQL y tener el control total de lo que hago.

  • @edustreamimg
    @edustreamimg 2 ปีที่แล้ว

    donde haya una freequery con redis que se quite cualquier orm y más si tienes que hacer reporting

  • @jhonvalencia6902
    @jhonvalencia6902 3 ปีที่แล้ว

    Que es eso del profiler? Dónde puedo leer sobre la herramienta?

    • @katelme
      @katelme 3 ปีที่แล้ว +2

      Al menos en hibernate es un parámetro de configuración debug con el que te logea la HQL relacionada con la SQL que genera. También tienes el plan de ejecución del motor de base de datos

  • @katelme
    @katelme 3 ปีที่แล้ว

    Y MyBatis de java donde se englobaría?

  • @katelme
    @katelme 3 ปีที่แล้ว

    Se podría tratar un xml,json como fuente de datos de una tabla. Hay algun driver sql?

    • @SimaDamian
      @SimaDamian 3 ปีที่แล้ว +1

      En Mysql podes trabajar con xml pero es un quilombo (no te recomiendo). En MSSQL es un poco mejor. En ambos casos el SP que realizaría el trabajo se puede volver inmantenible. Depende de lo que quireas hacer. Por otro lado si queres trabajar con un XML desde codigo y luego invocas las sentencias en una transacción. Desconozco si existen herramientas que realizen ese trabaja y se las pueda configurar.

  • @EldiariodeAlbert
    @EldiariodeAlbert 3 ปีที่แล้ว +6

    La seguridad tiene como precio el rendimiento

  • @katelme
    @katelme 3 ปีที่แล้ว

    Otro peligros de los ORM. Solo debería haber una aplicación leyendo de una tabla determinada? Si hay una app que lee y otra escribe como queda esa cache?

    • @SimaDamian
      @SimaDamian 3 ปีที่แล้ว +2

      Entiendo el punto. Pero ese cache que comenta se entiende que es sobre tablas con datos fijos (estilo configuraciones). Se debe saber cuales tablas (objetos mapeados) deberían ser chache y cuales no. O actualizar el cache en base a eventos. Por otro lado no es un probelma exclusivo de ORM.

  • @karmelodev
    @karmelodev 3 ปีที่แล้ว +11

    Honestamente, los ORM son una caja negra con un performance muy pero muy malo , mejor realizar consultas optimizadas desde el principio aunque demores un poco porque el dolor de cabeza de migrar despues va hacer Grande. claro esta cada quien saque sus conclusiones con sus experiencias.

  • @snithfferx
    @snithfferx ปีที่แล้ว

    Spoiler alert. Ya no se usan Yaml. jejejejej van a tener que rehacer o más bien, deberán hacer una pequeña actualización.
    Hablando de ORM, sé que no lo es, qué opinan de usar graphql como ORM ?
    Yo para evitarme estar creando consultas SQL en el medio de mi modelo (porque uso MVC) me hice un par de métodos que hicieran eso, usando como conector y ejecutor de dichas consultas a PDO, qué opinion me dan de eso. Para simplificarles, para pedir algo o agregar algo, haces una arreglo con cierta estructura y se lo pasas a una función y esta usando otra función pero ésta vez con las herramientas de PDO se conecta a la base y devuelven el resultado en un arreglo asociado listo para consumir.

  • @marcosgarces7962
    @marcosgarces7962 3 ปีที่แล้ว

    Que pensáis de flutter

  • @felixcomp
    @felixcomp 3 ปีที่แล้ว +1

    Por cierto, lo de las camisas casi iguales Jajajajajajajajaja

  • @marcosr.guevara2225
    @marcosr.guevara2225 3 ปีที่แล้ว +2

    Spoiler: Si el ORM tiene lo que te hace falta, siempre que puedas.

  • @Takyomismo
    @Takyomismo 3 ปีที่แล้ว +1

    Eloquent de Laravel no necesita mapear la bd

    • @Hasdpk
      @Hasdpk 3 ปีที่แล้ว

      Eloquent usa ActiveRecord, que no es lo mismo que ORM.

    • @soj3da
      @soj3da 3 ปีที่แล้ว +2

      @@Hasdpk los dos son ORM, solo que hay dos tipos por asi decirlo Data Mappers (Doctrine se basa en este patron) y Active Record (Eloquent en este)

  • @chaosdemon3182
    @chaosdemon3182 2 ปีที่แล้ว +1

    En lo personal me gusta mas sql, utitlizar ORM siempre me da bugs en algo xD

  • @SergioCasmuz
    @SergioCasmuz 3 ปีที่แล้ว

    Si lo uso, siempre que se pueda y no me complica lo uso, RE

  • @DiegoLozada77
    @DiegoLozada77 3 ปีที่แล้ว +1

    La explicación seria mas hermosa si hubiese empezado con Java o Javascript :v

  • @mezdelex
    @mezdelex 3 ปีที่แล้ว

    ORM + QueryDSL la salud

  • @abrahamfract
    @abrahamfract 3 ปีที่แล้ว +2

    Si el objetivo era darme tips sobre cuando usar uno y cuando otro para empezar un desarrollo, su video no me aporto casi nada. Los tips que dieron es cuando ya está hecho y eso no me sirve de mucho.
    En cambio yo me enfocaría si la base es heredada y tiene claves compuestas (pésima práctica) no usaría un orm, y si la base está bien hecha (es decir, claves enteras únicas) si usaría un orm.
    La cuestión es poder decidir antes del desarrollo y no después, ya que los temas de rendimiento se ven después, cuando la aplicación está en producción y se conoce el volumen de uso, y los tips que me han dado es para cuando ya está hecho. Además cada orm tiene la opción de ejecutar sql directo cuando el rendimiento de una operación con orm no es óptima.
    Me gustarían tips para decidir desde el análisis y diseño, y no tips de rendimiento para cuando ya está implementado.

    • @cristianmosteiro6458
      @cristianmosteiro6458 3 ปีที่แล้ว +2

      Bueno tu aporte técnico. El inicio innecesario. El objetivo era compartir el pienso. Te lo tiro porque suenas grosero y no te va a sumar al trabajar en equipo. De nuevo va con ganas de sumarte no en lo técnico vale. Abrazo

  • @ziat1988
    @ziat1988 3 ปีที่แล้ว

    subtitle please

  • @bryan98pa
    @bryan98pa 3 ปีที่แล้ว

    El ORM de Laravel tambien es bueno.

  • @aheadlabs
    @aheadlabs 3 ปีที่แล้ว

    ¿Y Entity Framework no os merece un comentario? :D