none
relación personas-emails RRS feed

  • Pregunta

  • Hola, tengo una pregunta para ustedes

    Si tengo una entidad Personas, y cada persona puede tener uno o más correos electrónicos

    como lo pueden ver en la imagen.

    Voy a eliminar el campo ID_Email, y voy a poner Emial como llave primaria, ya que ese es un campo único, pero me quedo con una duda

    la columna ID_Email tiene como default un objeto de secuencia autonumérico.

    La pregunta es, está bien que la elimine? o me podría servir más adelante de algo?



    saludos

    lunes, 20 de mayo de 2013 19:45

Respuestas

  • Siempre es recomendable que el valor de la PK no pueda ser modificado por el usuario para evitarte luego problemas en el futuro si tienes cambios..

    Si quieres validar que un email sea unico creale al campo un índice de tipo unico..

    • Marcado como respuesta kakaroto2012 martes, 21 de mayo de 2013 18:16
    lunes, 20 de mayo de 2013 23:53
  • En primera instancia recuerda siempre buscar que tus columnas seleccionadas como claves representen las mismas de forma natural, en este caso que planteas el uso de una columna con la propiedad identity (IDEmail) para que esta sea el primary key es una mala decisión en términos de diseño relacional, puesto que cuentas con una llave natural como es la columna Email, en particular yo quitaría la columna IDEmail de tu diseño de tabla sin ningún temor.

    Este escenario es un buen ejemplo de una afirmación que defiende a veces de forma exagerada el Sr.Joe Celko (Ver este interesante articulo: https://www.simple-talk.com/sql/t-sql-programming/mimicking-magnetic-tape-in-sql/).


    "How many years can some people exist before they're allowed to be free" Bob Dylan Email: info@geohernandez.com Blog: geeks.ms/blogs/ghernandez

    • Marcado como respuesta kakaroto2012 martes, 21 de mayo de 2013 18:16
    martes, 21 de mayo de 2013 2:29

Todas las respuestas

  • Siempre es recomendable que el valor de la PK no pueda ser modificado por el usuario para evitarte luego problemas en el futuro si tienes cambios..

    Si quieres validar que un email sea unico creale al campo un índice de tipo unico..

    • Marcado como respuesta kakaroto2012 martes, 21 de mayo de 2013 18:16
    lunes, 20 de mayo de 2013 23:53
  • En primera instancia recuerda siempre buscar que tus columnas seleccionadas como claves representen las mismas de forma natural, en este caso que planteas el uso de una columna con la propiedad identity (IDEmail) para que esta sea el primary key es una mala decisión en términos de diseño relacional, puesto que cuentas con una llave natural como es la columna Email, en particular yo quitaría la columna IDEmail de tu diseño de tabla sin ningún temor.

    Este escenario es un buen ejemplo de una afirmación que defiende a veces de forma exagerada el Sr.Joe Celko (Ver este interesante articulo: https://www.simple-talk.com/sql/t-sql-programming/mimicking-magnetic-tape-in-sql/).


    "How many years can some people exist before they're allowed to be free" Bob Dylan Email: info@geohernandez.com Blog: geeks.ms/blogs/ghernandez

    • Marcado como respuesta kakaroto2012 martes, 21 de mayo de 2013 18:16
    martes, 21 de mayo de 2013 2:29