| |||
en una tabla 'usuarios' cual campo conviene tomar como PK? tal cual, a la hora de trabajar con bases de datos mysql... (en este caso para trabajar sobre un blog de noticias) que campo me convendria mas a futuro como primary key? el campo 'usuario'(nombre de usuario), el campo 'email', o el propio campo 'id'? espero puedan aclarar mi duda |
| |||
Respuesta: en una tabla 'usuarios' cual campo conviene tomar como PK? Cita: jaja si te entiendo pero me referia a los usuarios que se registran en dicho blog! no a los que mencionas que serian mas como autores... o redactores, me refiero mas a un visitante que cree su usuario y tal...
Iniciado por gdipaolo59 Saludos! yo particularmente haría una tabla de clasificación y una tabla de noticias ya que estas noticias deben pertenecer a una clasificación en particular por ejemplo (Política, espectáculo, sucesos, deporte etc) que tenga su ID como Primary key. y una tabla noticias que tendría su propio Id (Primary Key), TituloNoticia, Noticia, IdClasificacion. y asi las vas enlazando. si cada noticia es publicada por un usuario especifico debes crear una tabla usuarios (Id, usuario) y a la tabla noticias meterle también el IdUsuario. es posible que una tabla noticias tenga muchas publicaciones por el mismo usuario por lo que te recomiendo que el campo primario sea el ID espero entiendas la idea. |
| ||||
Respuesta: en una tabla 'usuarios' cual campo conviene tomar como PK? Hay dos criterios básicos para tu caso: 1) Usas el nick o username con el que se registra. 2) Usas el e-Mail (los foros de la pagina oficial de Oracle usan el e-Mail, por ejemplo). En cualquier caso, lo que es INNECESARIO es crear un campo "id" numérico, dado que de todos modos tendrás que declarar UNIQUE el username y/o el e-Mail. TEn en cuenta que el modelo E-R dice expresamente que una PK es un campo o conjunto de campos que identifica UNIVOCAMENTE un único registro en una tabla. No existe ninguna regla que diga que tal campo o conjunto de campos deba ser ni numérico ni incremental, eso es un invento heredado de la programación y no parte del modelo relacional de BBDD. Ahora bien, si sólo declaras PK un campo numérico incremental, y no declaras UNIQUE el username o el e-Mail (o los dos), tendrás que además programar validaciones adicionales para evitar que dos o mas usuarios se registren con el mismo username o e-mail, dado que no habrás protegido la unicidad de tales valores. ¿Se entiende? En síntesis: Si no vas a restringir a los usuarios registrados por e-Mail, al menos hazlo por username, y usa el username como PK. Yo te sugeriría usar, como te digo, el username como PK, pero de todos modos dejaría como UNIQUE al e-Mail, para evitar que un mismo email pueda ser usado para múltiples cuentas de usuario...
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
Etiquetas: |