Pregunta

Tengo tres tablas: Post, el apego, y medios.

Mensajes con archivos adjuntos, archivos adjuntos y tienen medios.

En la actualidad, el Post y mesas de fijación están unidos por las claves externas, y también lo son el archivo adjunto y tablas de los medios de comunicación. Mi pregunta es, por el bien de diseño de base de datos adecuada y la normalización, debo configurar una relación de clave externa entre el poste y los medios de comunicación? Estoy seguro de cómo profunda que debería vincular estas tablas juntos.

Gracias

¿Fue útil?

Solución

por el bien de diseño de base de datos adecuada y la normalización, debo configurar una relación de clave externa entre el poste y los medios de comunicación?

En la "normalización adecuada" usted tiene que asegurarse de que no hay "anomalías de actualización".

Si alguien actualiza un mensaje, lo que ocurre con archivos adjuntos y los medios de comunicación? El cambio de nombre será un puesto de desconectar los archivos adjuntos y / o los medios de comunicación? Si es así, entonces su FK está mal. [Indicación, no debe utilizar claves suplentes el nombre del puesto para hacer el trabajo de su FK.]

Si alguien quiere "mover" un archivo adjunto de un puesto a otro [es decir, actualizar referencia FK del Archivo], lo que ocurre con los medios de comunicación? ¿Se queda con el archivo adjunto y se mueven al nuevo puesto?

Podría terminar con el poste que tienen archivos adjuntos y los medios de comunicación, así como datos adjuntos que tienen los medios de comunicación? ¿Podrían el Post y los datos adjuntos en desacuerdo sobre los medios porque el adjunto fue "movido", pero el artículo no se ha actualizado también?

Si usted puede tener contradicciones, se ha roto segunda forma normal y que han repetido las relaciones clave que no debería haber repetidos.

La normalización adecuada es fácil.

datos depende de la clave y sólo la clave.

No se pueden copiar o repetir dependencias en cualquier lugar. Lo que está llamando "deep linking" parece ser una repetición de las dependencias.

Otros consejos

No, para la normalización tan profundo como 3NF se refiere a su, que es la normalización de costumbre nivel, la estructura está bien.

Para la normalización registro tiene que cuesta así ya que se beneficia, especialmente para la inserción de datos y la eliminación contra un mayor nivel de control sobre exactamente cómo y qué se puede insertar.

Uno normalizada y denormalizes a su propio riesgo:)

Creo que se encuentra bien.

Parece posible que un POST puede tener varios archivos adjuntos y un archivo adjunto que puede tener varios puestos de trabajo, si lo que tendrá una entidad de enlace para la tercera forma normal:

  Post

    |
    |
  -----
  | | |

Post_Attachment

  | | |
  -----
    | 
    |

Attachment

    |
    |
  -----
  | | |

  Media

Pero a partir de su descripción no parece haber ninguna relación clave entre el poste y MEDIA.

La única razón para la adición de un FK desde Media Post sería si necesita filtrar o seleccionar los medios para un puesto determinado sin tener en cuenta los archivos adjuntos. Incluso si usted necesita para mostrar los medios de comunicación (tal vez por tipo) y el puesto al que pertenece, no añadiría una asociación directa; los gastos generales para la adición de un segundo unirse a (a través de la tabla de datos adjuntos) es probable que sea mínima, por lo que es poco probable que ver ninguna mejora significativa.

mesas Enlace tan profundo como tiene sentido. Desnormalizar de notificación y después de ver los problemas de rendimiento.

En primer lugar, no es necesario utilizar claves suplentes. Una base de datos adecuada caerá en cascada cambios si lo desea. Cuando la normalización de una base de datos, que está por lo general tratando de lograr la tercera forma normal o incluso BCNF. Segunda forma normal no siempre protegerá sus datos de anomalías de actualización. La determinación de las dependencias funcionales en el esquema debe ser simple una vez que se produzca un diagrama ER y decidir qué datos son parte de las entidades (Mensajes, archivos adjuntos, los medios de comunicación) y los datos que forma parte de las relaciones. Dependiendo de la cardinalidad de sus relaciones, que puede o no puede necesitar unir tablas. Lo mejor que puede hacer es modelar sus datos en un diagrama, a continuación, hacer frente a los problemas de implementación.

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