¿Cómo debo almacenar una lista en una base de datos

¿Cómo debo guardar una lista de enteros en una web app ?

Estoy diseñando un facebook como aplicación y para cada usuario necesito guardar los identificadores de sus amigos, por lo que un csv en la DB y creo que no es indicado, teniendo en cuenta que un usuario cam incluso tener 1000 amigos y el campo de base de datos que debe contener esta lista es fijo, el csv de mayo de desbordamiento de campo .

Debo almacenar estas listas en el local del servidor de archivos o la base de datos sigue siendo la mejor opción ?

  • Cuidado con esa lista! Los que no son enteros usted está manejando! Esos son los amigos! ¿Usted realmente desea guardar una lista de enteros? O una lista de amigos ?
  • cada amigo tiene un id que es un entero (int, por ahora. voy a codificar una cadena más adelante en el desarrollo de la aplicación )
  • Yo estaba tratando de (claramente yo no) para mostrar que si te pones a pensar como lo que realmente es, una lista de amigos, la solución es obvia. Un usuario tiene una lista de (es decir, muchos de los usuarios como amigos, y puede ser amigos con muchos usuarios. Así, muchos-a-muchos de relación es la respuesta.
  • Lo siento por no llegar al punto en el primer lugar. Gracias por la explicación !
  • llegó a través de esta pregunta el día de hoy. No puedo creer lo que un novato que era! gracias por la paciencia!
InformationsquelleAutor Alex | 2010-12-26

4 Kommentare

  1. 16

    Muchos-a-muchos relaciones son normalmente manejados mediante una tabla separada.

    user  |  friend
    ---------------
    1     |  2
    1     |  3
    2     |  3
    etc
    

    Usted, a continuación, utilice una combinación de averiguar quién es amigos con un usuario determinado

  2. 5

    Lo que usted está buscando es una tabla de combinación, de unirse a los Usuarios a sí mismo. Una entrada en esta tabla representan una amistad entre un usuario y otro.

    Tabla de usuarios

    UserID | UserName | FirstName | LastName ...
    

    Amigos de la tabla

    ID | UserID | FriendID
    

    Tanto el id de usuario y FriendID sería clave externa a la tabla de Usuarios. Quizás quieras tener una restricción de unicidad sobre el par (UserID,FriendID) y un índice no único en UserID. Nota que el nombre de usuario es la PK de la tabla de Usuarios y el IDENTIFICADOR es el PK para los Amigos de la tabla. El uso de un independiente PK para los Amigos de la tabla será más fácil para referirse a un determinado usuario/usuario de par en sus interfaces.

  3. 2

    Usted no debe guardar una lista en un solo campo de la base de datos – usted no será capaz de fácilmente consulta. Multi-valores de las columnas son casi siempre la opción incorrecta.

    En términos de diseño de base de datos, usted debe tener muchos-a-muchos de tabla para conectar a los usuarios a los amigos (puede que también desee almacenar la correspondiente relación opuesta en su mesa, para facilitar el recorrido de la bi-direccional de la relación).

  4. 1

    El uso de una base de datos.

    Hoy usted podría tener 1000 amigos.

    Mañana, 10000. Obviamente, esto no escala muy bien con CSV.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea