Nunca he creado un carrito de compras o foro en php. además de ver y analizar el proyecto de otras personas o ver tutoriales que muestran cómo hacer un proyecto así o cómo ser un proyecto así. ¿Cómo sabría una persona cómo diseñar la estructura de la base de datos para crear tal cosa? estoy adivinando su probbably a través de ensayo y error ...¿cómo sabes cómo diseñar una base de datos mysql al crear una aplicación php avanzada?
Respuesta
La técnica principal que puede aprender sobre el diseño de la base de datos se llama Database Normalization.
La normalización de la base de datos tiene sus límites, especialmente si tiene muchas transacciones. En algún momento, puede verse obligado a Denormalize.
Pero siempre es mejor comenzar con un diseño de base de datos normalizado.
debe leer y comprender los conceptos básicos de normalization. para la mayoría de los proyectos, normalizar a la 3ra forma normal estará bien. Siempre hay ciertos escenarios en los que desea más o menos normalización, pero comprender los conceptos que lo respaldan le permitirá pensar cómo se estructura su base de datos en un formato normalizado.
aquí es un ejemplo muy básico de normalización de una tabla:
students
student_id
student_name
student_class
student_grade
una mesa bastante estándar que contiene diversos datos, pero podemos ver algunas cuestiones de inmediato. podemos ver que el nombre de un estudiante depende de su identificación, sin embargo, un estudiante puede estar involucrado en más de una clase, y es concebible que cada clase tenga una calificación diferente. entonces podemos pensar en las tablas como por ejemplo:
students
student_id
student_name
class
class_id
class_name
esto no es malo, ahora podemos ver que tenemos varios estudiantes, y varias clases, pero no hemos capturado las calificaciones del estudiante.
grades
student_id
class_id
grade
Ahora tenemos una tercera mesa, que nos permite comprender la relación entre un estudiante en particular, una clase particular, y un grado de asociado a esa clase. desde nuestra primera tabla inicial, ahora tenemos 3 tablas en una base de datos normalizada (supongamos que no necesitamos normalizar las calificaciones más por ejemplo :))
algunas cosas que podemos deducir de este ejemplo básico :
- todos nuestros datos están ligados a una clave de algún tipo (student_id, class_id, y student_id + class_id). estos son identificadores únicos dentro de cada tabla.
- con nuestras relaciones con clave, somos capaces de relacionar la información de la otra (el número de clases es estudiante # 4096 inscrito en?)
- podemos ver nuestras tablas no contendrán datos duplicados ahora (pensar en nuestra primera tabla , donde student_class podría ser el mismo valor para muchos estudiantes. si hubiera que cambiar el nombre de la clase, tendríamos que actualizar todos los registros. en nuestro formato normalizado, que sólo puede actualizar class_name de id_clase)
excelente respuesta dude – jake
También recomendaría usar un editor visual para crear su esquema de base de datos. Recientemente he estado usando: http://dev.mysql.com/workbench/
Una vez que cree un diseño de base de datos, pida a alguien con más experiencia que lo revise y le envíe sus comentarios.Pero sepa que mientras dedique mucho tiempo al diseño, eventualmente tendrá que hacer la implementación y descubrirá que se está perdiendo algo o podría hacer un trabajo aún mejor si lo hace de otra manera.
Por lo tanto, diseñe, obtenga comentarios, pero no tenga miedo de cambiar.
- 1. Cómo diseñar una base de datos SaaS
- 2. Cómo diseñar una base de datos mysql multi-tenant
- 3. Php/MySql 'Búsqueda avanzada' Página
- 4. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql
- 5. Cómo diseñar un daemon con una conexión de base de datos MySQL
- 6. Script de búsqueda avanzada de PHP/MYSQL. ¿Cómo?
- 7. ¿Cómo diseñar una base de datos con historial de revisiones?
- 8. ¿Cómo diseñar una tabla MySql para una nube de etiquetas?
- 9. ¿Cómo elimino una base de datos MySQL?
- 10. ¿Puedo crear una base de datos usando PDO en PHP
- 11. ¿Cómo hago una impresión avanzada desde una aplicación web?
- 12. ¿Cómo reemplazar MySQL Server con Apache Derby como base de datos de una aplicación PHP?
- 13. Cómo importar una base de datos mySQL sin crear una nueva
- 14. ¿Cómo puedo consultar una base de datos MySQL desde una aplicación de Rails sin modelos?
- 15. ¿Cómo puedo mantener segura una base de datos mySQL?
- 16. ¿Cómo diseñar y diseñar una aplicación web Java/Java EE?
- 17. cómo construir una aplicación php mysql que funcione sin conexión
- 18. ¿Cómo crear una tabla en una base de datos particular?
- 19. Php mysql crear base de datos si no existe
- 20. Crear usuario y base de datos MySQL desde PHP
- 21. php, mysql - Demasiadas conexiones al error de base de datos
- 22. MySQL: ¿Cómo convertir una base de datos a solo lectura?
- 23. ¿Cómo puedo volcar una base de datos MySQL usando hormiga?
- 24. ¿MySQL permite crear una base de datos con punto?
- 25. Crear una nueva base de datos MySQL usando Workbench
- 26. Crear base de datos MySQL desde Java
- 27. Diseñar, cómo crear una página de perfil de edición
- 28. ¿Cómo sabes cuando una base de datos SQL necesita más normalización?
- 29. Cómo escalar una aplicación PHP (servidores, mysql, memcache)
- 30. Copiando una base de datos en MySQL, ¿cómo copiar vistas?
gracias por corregir la ortografía. Mi inglés es horrible ... lo sé :( –
ha, no hay problema :) – Owen