Bueno, ahora les voy a consultar como harian algo que en mi sitio ya esta funcionando, pero que ahora que estoy rediseñando y optimizando todo lo que pueda, quiero hacerlo mas eficiente.
Les resumo: en mi sitio se puede conocer gente. Las personas configuran lo que estan buscando de entre 4 opciones: Amistad, Relacion Estable, Sin Compromisos y Otro Tipo De Relacion.
El problema se me presenta a la hora de realizar busquedas. Tengan en cuenta que un usuario puede configurar todas las relaciones que quiera, por ejemplo Amistad y Sin Compromisos.
A la hora de buscar, los miembros seleccionan, entre otras cosas, la relacion que desean, por lo que se devolveran resultados que coincidan con por ejemplo Amistad y Sin Compromisos. Aclaro que la gente puede buscar por una de las relaciones o por todas ("Opcion Cualquiera").
Hasta ahora en mi tabla vengo guardando en un campo llamado relacion, datos como "Amistad, Relacion Estable", o "Amistad, Sin Compromisos", etc.
A la hora de buscar, como dentro de este campo puede haber varias relaciones separadas por comas, no me queda mas remedio que hacer
SELECT .... WHERE relacion LIKE '%Amistad%' OR relacion LIKE '%Sin Compromisos%'...
en el caso de que se busquen personas que a su vez quieran estas dos relaciones.
Yo quisiewra dejar de usar este LIKE porque estoy conciente de que demora mucho más que otras consultas, ya que mido los tiempos.
Y aca viene el problema, no se me ocurre que hacer.
Una solucion pienso que seria agregar tantos campos como relaciones, y de esta manera reemplazar el LIKE por un = , pero que pasa si en un futuro qiuero agregar relaciones, o cambiarle el nombre a alguna, por ejemplo Sin Compromisos llamarla Relaciones Esporadicas?
Yo quisiera usar una tabla aparte que contenga las relaciones como registros y con un id cada uno, y usar esos ids para relacionarlos con los miembros de alguna forma, pero caeria otra vez en lo de las comas, o sea, en vez de por ejemplo "Amistad, Relacion Estable" seria "1;2", y en definitiva es lo mismo.
Bueno, ese es el problema, me gustaria que me ayuden o comente que solucion implementarian.
Desde ya se los agradezco mucho.