Pregunta

Quiero crear una mesa de amigos con información personal e inicie sesión en detalles.

Lo mejor separar los miembros de la mesa a 2 mesas, uno contienen detalles mínimos, segundos con otros detalles.

o permanecer en una mesa?

tengo una gran cantidad de tablas que contienen la clave externa del miembro.

¿Fue útil?

Solución

Depende mucho de lo que esos "otros" son detalles. Esta es una pregunta común e interesante, y no hay una respuesta "fuerte y rápido" a primera vista. Pero si pensamos en el problema de manera más abstracta, acerca de la relación real entre los atributos ( "datos") de cualquier cosa en particular que desea representar, podemos encontrar un poco de claridad.

En su pregunta que indicar que los amigos tienen "mínimos" y "otros", detalla. En lugar de la clasificación de estos datos como "mínimo" o "otro", vamos a clasificarlos en función de si o no cualquier individuo ( "atómica") detalle puede ser determinada totalmente por lo que hace que un amigo único.

supongo que hay algo de clave primaria (PK), al igual que friendid o dirección de correo electrónico o algo así. Teniendo en cuenta este identificador único, pregúntese: "Si me dan exactamente un friendid (o e-mail o lo que sea que está utilizando como PK) lo detalles de ese amigo soy yo absolutamente seguro de, por ejemplo, dado friendid = 2112, estoy totalmente? saber en primer lugar el nombre de ese amigo, apellido y fecha de nacimiento, pero no absoluta certeza el número de teléfono de ese amigo porque hay más de uno de ellos.

Grupo juntos en una mesa todos los detalles que sin ambigüedades sabe le da la PK. Ponga los detalles para el que necesita más datos (como "en casa" o "trabajo" en el caso de los números de teléfono) en las tablas de "niños", de vuelta a la mesa "padres" en el PK de la carrocería exterior. (Nota: Es muy probable que el PK de la tabla secundaria sea compuesto, esto es, compuesta de PK de la tabla primaria y el factor diferenciador (como "en casa" o "trabajo" en este ejemplo) claves compuestas por los muchos lados. del 1-M relaciones son muy buenas.)

frikis base de datos llaman a esta descomposición basada en la dependencias funcionales .

Otros consejos

Una mesa, menos que potencialmente necesita asociar un miembro de varios conjuntos de datos (es decir, múltiples direcciones de correo electrónico, grupos de usuarios, el día de teléfono, noche-teléfono, teléfono celular, etc.) .

No hay duda al respecto:. Siempre divide tablas cuando tiene sentido lógicamente

Por ejemplo:   Amigo 1: Tom Jones vive en El Valle   Amigo 2: Erin Jones vive su demasiado ya que es su hermano

tablas:

Friends
Id  Name          Address
1   Tom Jones     1
2   Erin Jones    1

Adresses 
Id Address
1  The valley

De lo contrario las cosas siempre se van a plantear como:

Friends
Id  Name          Address
1   Tom Jones     The Valey
2   Erin Jones    The Valley

lo que conducirá a las preguntas erróneas.

Eso es sólo un problema, hay numerosos. Al igual que lo que si es así tiene 2 direcciones de correo electrónico y 3 números de teléfono celular? ¿Qué pasa si un StreetName cambios y 5 amigos viven en él?

Si está muy seguro de su mesa será pequeño, y usted no tiene que consultarlo, lo que se podría usar una sola mesa. Pero de lo que sólo puede utilizar algunos Excell como sw también, o un pedazo de papel para el caso: -)

Sin embargo, si usted quiere tener una base de datos, lo tratan como una sola.

Normalización de todo el tema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top