2010-10-13 17 views
6

Tengo un modelo con 3 direcciones: recogida, entrega y facturación. Me imagino que la dirección de facturación generalmente será la dirección de recogida o entrega, por lo que desde la perspectiva de UI, debería tener la opción "igual que". Pero desde una perspectiva DB, ¿debo guardar el campo "igual que", o debería duplicar los datos?¿Cómo almacenar datos "iguales a"?

Respuesta

4

Debe tener la misma Id de una fila de una tabla de direcciones en dos columnas diferentes, PickUp y DropOff. De esta manera, no duplicas la dirección, no utilizas alguna dirección de vigilancia, y puedes consultar fácilmente para ver si la dirección de PickUp es la misma que la de DropOff. Si uno de estos cambios en el futuro, siempre puede modificar el valor Id almacenado en su columna respectiva a una nueva dirección.

+0

Derecho ... la solución obvia. Creo que estaba confundiendo problemas en mi cabeza cuando pensé en esto (hay un "guardar como predeterminado" también ...) – mpen

2

Puede crear una tabla llamada 'Dirección' y hacer Pickup, Dropoff, FK de facturación a esa tabla de direcciones.

2

El hecho de que una dirección sea la misma dirección física no significa que sea la misma dirección conceptual. Realmente, la dirección de John Doe puede ser "123 Elm St.", pero conceptualmente su dirección es "dirección de correo de John Doe".

En particular, para direcciones yo diría que puede y debería ser duplicados dentro de una base de datos debido a este caso simple: considerar dos personas que viven en la misma dirección. Ahora uno de ellos se mueve. Si solo almacenó la dirección una vez, actualizar la dirección del "motor" también actualizaría la dirección del compañero de cuarto original.

Pero en general, considere cómo los datos están vinculados a otros datos. Si hay muchas cosas que pueden relacionarse con él, asegúrese de que un cambio para uno debería afectarlos a todos.

+0

Buen punto, aunque depende del escenario. – mpen

1

alt text

+0

¡Jaja ... lindo! No tienes que dibujarme un diagrama, pero gracias :) – mpen

Cuestiones relacionadas