2008-10-14 13 views

Respuesta

3

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.

+0

gracias por corregir la ortografía. Mi inglés es horrible ... lo sé :( –

+0

ha, no hay problema :) – Owen

17

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)
+0

excelente respuesta dude – jake

1

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.

Cuestiones relacionadas