Aparentemente todos coincidimos en que
no hace falta una tercera tabla.
Yo personalmente optaría por dejar como PK a CodInt, y FK los otros dos campos. Cuando vayas a buscar los amigos de un usuario, vas a tomar un campo, por tanto está bien que haya un registro "1 1 2" y un registro "4 2 1", ¿me explico?
Es más fácil buscar en un campo el id del usuario y en el valor del otro el id del amigo, si no sabés en qué campo tenés el id del usuario se dificulta un poco; tenés que buscar el id en un campo, luego en el otro, e ir tomando el id del amigo.
Para hacer la selección de amigos de un usuario probablemente hagas:
Código SENTENCIA SQL:
Ver originalSELECT *
FROM usuarios u, transitiva t, usuarios uu
WHERE u.CodUs = CODIGO_DEL_USUARIO_AL_QUE_LE_BUSCO_LOS_AMIGOS
AND t.CodUsAmi = uu.CodUs
Saludos.