¿Cuáles son algunos hábitos en el diseño de bases de datos para que un desarrollador web los desarrolle desde el principio?

Algunas cosas básicas que los programadores tienden a no saber acerca de las bases de datos, pero que deberían saber.

  • Realice la menor cantidad posible de llamadas a la base de datos. Si es posible, devuelva muchos registros a la vez y almacénelos en un objeto en lugar de recorrer una declaración de selección. Y no solo hagas SELECT *. Se específico.
  • Sepa qué es un índice, cómo funciona y cuándo usar uno. Comprenda cómo funciona un árbol b y cómo se aplica al escaneo de datos en tablas. Comprenda las implicaciones de rendimiento de actualizar o insertar datos cuando hay un índice presente.
  • Para el caso, sepa cuáles son los diferentes objetos en una base de datos, cuáles son y cuándo usarlos. IE, vistas materializadas, sinónimos, secuencias, etc.
  • Comprender los conceptos básicos de un plan de explicación. Sepa qué es un hash-join, un bucle anidado, unir fusión y uniones cartesianas.
  • Para ampliar un poco la respuesta de Peat Bakke, sepa cuándo racionalizar y cuándo no. Hay ventajas y desventajas de ir completamente normalizado y, aunque hay un montón de teoría, los resultados reales son los que marcan la diferencia.
  • En lugar de enviar solicitudes de ajuste a un DBA, intente un montón de cosas diferentes usted mismo. Cuando te quedes atascado, siéntate con el DBA para comprender lo que está sucediendo.
  • Eche un vistazo a la partición de tablas y cómo puede ayudar a recuperar y almacenar datos de manera eficiente.
  • Aproveche las plataformas de bases de datos para lo que son buenos. Haga agregaciones, ordena y une directamente en la base de datos. Es mucho más costoso intentar escribir el código para hacer ese tipo de cosas. Básicamente transforma los datos tanto como sea posible en la base de datos. Un ejemplo podría ser, en lugar de devolver datos y luego ejecutar una función de subcadena en la aplicación en todos los registros devueltos, ejecutar la función de subcadena directamente en la instrucción select. De esa manera, sus datos solo se “enlazan” una vez.

Lo mejor para aprender sobre las bases de datos es 3NF, tercera forma normal.

Dicho brevemente, significa crear un registro único en una tabla para información repetida. El artículo de Wikipedia tiene mucho lenguaje técnico / académico, pero los ejemplos ilustran el principal: Tercera forma normal

Un ejemplo común de 3NF es cuando se almacenan registros de clientes en un sitio web de comercio electrónico: un cliente tendrá una dirección de envío y una dirección de facturación; ¡para la mayoría de las personas, esto será lo mismo! Por lo tanto, en lugar de crear campos para las direcciones de envío y facturación, crearía una tabla para las direcciones y dos claves externas en su tabla de clientes para el envío y la facturación.

Esta es también la convención que muchos frameworks web usan para almacenar y recuperar datos, le ayuda a desarrollar un instinto saludable sobre cómo separar las preocupaciones de datos en su código y mejora su comprensión de las dependencias dentro de un sistema.

3NF toma un poco más de tiempo por adelantado y un poco más de código a largo plazo, pero estoy seguro de que abrirá oportunidades y le ahorrará dolores de cabeza con el tiempo.

Ese es mi consejo general sobre habilidades comunes para aprender para bases de datos. ¡Las cosas se vuelven mucho más emocionantes cuando te sumerges en los detalles! 🙂

Piense en la reutilización de su código y en cómo sus estructuras de datos y hábitos de nombres harán que su código sea más reutilizable.

Espero que tengas una larga carrera; y si lo hace, estará trabajando en muchas aplicaciones. Sin duda, muchos de ellos tendrán tablas de usuarios, y esos usuarios tendrán direcciones, y así sucesivamente.

Todas sus tablas tendrán una clave principal, una fecha de creación, una fecha actualizada, posiblemente un campo creado por y actualizado por. Me gusta agregar tres campos FLAG que puedo usar como administrador de la base de datos, nunca consultados por la aplicación misma. Cada una de mis tablas tiene un campo RecordStatus. Cada tabla que creo tiene estos campos y siempre uso los mismos nombres de campo.

Forme rápidamente un plan consistente para nombrar campos, claves y tablas. De esa manera, esas mismas estructuras de datos se pueden mover, junto con el código, de un proyecto a otro.

Por ejemplo, hace años creé una tabla para direcciones con soporte internacional, basada en un documento ISO que encontré. Incluso si estoy trabajando en un proyecto basado en un solo país, usaré la misma tabla. Simplemente oculto el campo del país en la GUI. Junto con esa tabla, he acumulado tablas y datos de apoyo para la búsqueda de códigos postales, divisiones regionales, divisiones continentales, divisiones de idiomas, códigos STD, etc. Puedo reutilizar todos esos datos y códigos con pocos ajustes porque la estructura de mi tabla de direcciones es siempre la misma para cada aplicación que escribo. Cada vez que necesito una tabla de direcciones, sé que se conectará fácilmente a mi aplicación, y que ya he escrito mucho código para trabajar con ella.

More Interesting

¿Cuál es una mejor opción? Asumir un trabajo en los EE. UU. Que le paga $ 100,000 (INR 62,00,000) / año o un trabajo en la India que le paga INR 20,00,000.

¿Cuáles son los tipos de perfiles de trabajo ofrecidos durante las colocaciones después de haber completado el curso MHA (Master of Health Administration) en TISS?

¿Debería unirme al programa de salto HCL TSS que vale la pena darles 2 rupias lac?

Tengo curiosidad por saber cuál es el potencial de ingresos de alguien con una sólida comprensión de las bases de datos (PostgreSQL). ¿Aprender esto es un buen cambio de carrera?

He tomado PCM con C ++ en el 12º estándar. ¿Qué opciones tengo además de ingeniería con trabajos bien remunerados?

¿Por qué alguien iría a la escuela de derecho cuando existe la posibilidad de aplastar la deuda y un estilo de vida miserable?

¿Debo convertirme en artista gráfico?

¿Trabajar 54 horas a la semana es demasiado?

Necesito consejos de carrera. Estoy confundido. Amo la ciencia pero odio la biología. La astronomía me divierte pero no sé si me gusta o no. ¿Qué debo hacer?

¿Puedo tomar un automóvil de gasolina en un viaje largo?

¿Debería prepararme para las entrevistas en una de las grandes compañías tecnológicas y comenzar a solicitarlas en un año, o dar el GRE y mudarme a los Estados Unidos para un MS?

Si uno tiene una licenciatura en un campo, ¿puede él / ella obtener una maestría en otro campo?

¿Qué se supone que debo hacer cuando no tengo habilidades, encuentro un trabajo o trabajo en Upwork / Freelancer?

¿Para qué oportunidades técnicas y no técnicas en defensa de la India soy elegible? Me puedes guiar

¿Puedes crear un plan de aprendizaje de 3 años para convertirte en ingeniero de software desde cero?