Nunca he diseñado una base de datos/modelo de datos/esquema desde cero, especialmente para una aplicación web. En algunas entrevistas de trabajo recientes, me pidieron que 'diseñara' una base de datos para una aplicación de carrito de compras. Ahora estoy trabajando en una aplicación de compras móvil (minorista, usa phonegap) con un backend que necesita almacenar y procesar información de productos y pedidos. La escala de este problema es tan grande que no sé por dónde empezar. Esperaba un consejo sobre -diseña una base de datos para una aplicación de carrito de la compra?
- ¿Cómo debo abordar ese problema (DB de aplicación de carro de compras)? donde debería empezar ?
- ¿Hay algún error/error común que deba evitar?
- ¿Qué paradigmas de optimización/eficiencia debo tener en cuenta al diseñar un DB?
- ¿Cómo debo identificar a las entidades en el espacio problemático (productos, pedidos, etc.)? ¿cómo debo derivar las relaciones entre ellos?
- Cuando un entrevistador hace una pregunta, ¿qué está buscando exactamente? ¿Hay algo que debería/no debería decir?
También debo aclarar que -
- Sí, soy un novato, y mis motivos son para aprender diseño de base de datos y prepararse para próximas entrevistas de trabajo. He leído libros de DBMS donde describen conceptos individuales en detalle, pero no tengo ni idea de cómo armar esas cosas y comenzar a diseñar una base de datos.
- He visto otros hilos en el diseño de la base de datos. Los autores ya tienden a poseer algunos conocimientos sobre cómo resolver el problema. Me gustaría entender la metodología detrás de hacer eso.
- Los enlaces a recursos externos, comentarios, sugerencias y cualquier cosa que me ponga en el camino correcto es muy apreciada. Espero que este hilo sirva como una experiencia de aprendizaje para mí y para los demás.
Gracias por su respuesta y la información sobre la normalización. Como novato, tengo que aclarar esto desde mi punto de vista - es muy difícil para un novato comprender las complejidades del diseño de db en un dominio tan complicado como el carrito de la compra o la banca. esto tiene menos que ver con la comprensión de los conceptos básicos del diseño de DB, y más que ver con la comprensión del dominio y cómo dividirlo para obtener una buena solución. las respuestas anteriores han hecho un buen trabajo al proporcionar soluciones concisas para responder a ambos problemas: fundamentos del diseño Y conocimiento del dominio. el sentido común solo puede llevarte tan lejos. –