2012-02-22 21 views
5

Estoy trabajando con datos de Twitter y necesito almacenar uid y friendId en una tabla mysql. Mi propósito es crear una red de amigos y seguidores con la ayuda de la tabla más adelante.Manera eficiente de almacenar pares desordenados en una tabla mysql

Quiero evitar los pares duplicados como (uid, friendId) y (friendId, uid) en la tabla.

Gracias

+0

[¿Hay una manera elegante de almacenar una relación dual (es decir, el usuario 1 y el usuario 2 son amigos)] (http://stackoverflow.com/questions/8808994/is-there-an-elegant-way-to- store-a-dual-relationship-ie-user-1-and-user-2-are/8810099 # 8810099) –

+1

Guárdelos como se ordenó (id2> id1), y recuerde que de hecho no están ordenados. – wildplasser

+0

@ypercube: Una vez hice esto usando el sistema de reglas posgresql. Muy limpio. No es para los débiles de corazón, no intentes esto en casa. – wildplasser

Respuesta

1

para evitar pares duplicados se echa un uid < friendId antes de insertar.

+0

simple y elegante. Creo que va a funcionar el trabajo. Gracias. – s2n

+1

Es casi imposible hacer esto con MySQL. Tienes que hacer un disparo ANTES DE INSERTAR y provocar un error allí. – santiagobasulto

+1

Lamentablemente, @santiagobasulto tiene razón. No se puede hacer cumplir esta restricción, ya que , en MySQL. (Peor aún, MySQL le permitirá escribirlo en el código 'CREATE TABLE', lo analizará, no mostrará ningún error y luego ** lo ignorará **) –

Cuestiones relacionadas