Bueno, he diseñado ya más o menos la base de datos y he sacado un diagrama E-R
Aver si me podéis dar vuestra opinión de que os parece...
He quitado la tabla que tenía anteriormente como "infocuentas" que era como una ampliación de los atributos de la cuenta, ya que de normal solo se trabajaba con unos pocos.
Pero he decidido poner todo en una misma tabla, y luego desde la aplicación ya realizaré las funciones necesarias para obtener los datos que quiera.
El tema que haya comentarios a usuarios, a fotos, o los mensajes con 0-1 usuarios es porque he pensado en que deje el valor NULL cuando un usuario es eliminado (en vez de borrar sus mensajes y comentarios) y desde la apliación tendré esto en cuenta para mostrar el nombre como "Usuario eliminado" pero que se puedan ver los mensajes.
También lo he hecho en los mensajes "privados", para que si se borra un usuario que te había enviado un mensaje, no se te borre el mensaje, aunque si que te mostrará "Usuario eliminado" y no el nombre del que te venía (Que ya no existirá).
----------------------------------------
Tengo una duda, que ya no me acuerdo como se hacía.
En la tabla "amistades" por ejemplo, tengo "idcuenta1" e "idcuenta2", son la clave primaria, pero además no puede haber otra fila con los mismos valores pero invertidos.
E imagino que al tenerlo como ahora, si que me dejaría tener por ejemplo:
Idcuenta1 Idcuenta2
1 2
2 1
¿Cómo se indica para que no puedan repetirse de este modo?
---------------------------------------
Y otra duda, ¿sería recomendable introducir dentro de la clave primaria las claves foráneas?
Por ejemplo en la tabla "Fotos" tengo el "idfoto" solamente como clave primaria.
Aunque con eso ya basta, sería mejor añadir "idcuenta"?
Un saludo y muchas gracias
Aver si me podéis dar vuestra opinión de que os parece...
He quitado la tabla que tenía anteriormente como "infocuentas" que era como una ampliación de los atributos de la cuenta, ya que de normal solo se trabajaba con unos pocos.
Pero he decidido poner todo en una misma tabla, y luego desde la aplicación ya realizaré las funciones necesarias para obtener los datos que quiera.
El tema que haya comentarios a usuarios, a fotos, o los mensajes con 0-1 usuarios es porque he pensado en que deje el valor NULL cuando un usuario es eliminado (en vez de borrar sus mensajes y comentarios) y desde la apliación tendré esto en cuenta para mostrar el nombre como "Usuario eliminado" pero que se puedan ver los mensajes.
También lo he hecho en los mensajes "privados", para que si se borra un usuario que te había enviado un mensaje, no se te borre el mensaje, aunque si que te mostrará "Usuario eliminado" y no el nombre del que te venía (Que ya no existirá).
----------------------------------------
Tengo una duda, que ya no me acuerdo como se hacía.
En la tabla "amistades" por ejemplo, tengo "idcuenta1" e "idcuenta2", son la clave primaria, pero además no puede haber otra fila con los mismos valores pero invertidos.
E imagino que al tenerlo como ahora, si que me dejaría tener por ejemplo:
Idcuenta1 Idcuenta2
1 2
2 1
¿Cómo se indica para que no puedan repetirse de este modo?
---------------------------------------
Y otra duda, ¿sería recomendable introducir dentro de la clave primaria las claves foráneas?
Por ejemplo en la tabla "Fotos" tengo el "idfoto" solamente como clave primaria.
Aunque con eso ya basta, sería mejor añadir "idcuenta"?
Un saludo y muchas gracias