Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/05/2009, 14:12
jose-web
 
Fecha de Ingreso: enero-2009
Ubicación: Tijuana
Mensajes: 80
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Consejo por favor de administracion de mis tablas

Cita:
Iniciado por Grutzen Ver Mensaje
Hola!
Si deseas hacerlo de la forma técnicamente correcta, lo mejor es tener una tabla "catálogo" por cada entidad que se repertirá N veces en otra tabla.

Es decir, tendrías al menos tres tablas: giros, Estados, y fundadores (?), lo de palabras queda en duda según el tipo de uso que pretendas darle al dato.

cada registro de cada tabla "catálogo" debe tener un id único para que pueda relacionarse con otra tabla para hacer un query eficiente.

por ej. yo lo haría más o menos así

giros
id_giro, descrip
1, concesionaria
2, taller eléctrico
3, taller mecánico
etc.

estados
id_edo, clave, estado

1,AGS,Aguascalientes
2,BC, Baja California
3,BCS, Baja California Sur
etc

fundadores
id,nombre,direccion,id_giro,id_estado
1,serivicios mayoral, calz independencia #100,3,2
etc

los id de cada tabla catálogo deben ser campos autoincrementables y fungir como llaves primarias.

La cosa de los queries ya es otra historia

Para lo de las palabras se me ocurre que estás buscando definir un set de palabras claves para cada registro, ahí tienes dos caminos:
1. hacer un catálogo de palabras
Esto, complica un poco más las cosas ya que necesitarías una tabla auxiliar para relacionar la tabla fundador con la tabla palabras, y ésta tendría un registro por cada relación. este enfoque tiene ventajas y desventajas que quizá de momento no vale la pena explicar... si quieres lo detallo después.

2. hacer en fundadores un campo texto que contenga un indice de tipo fulltext para realizar busquedas eficientes en dicho campo. En cuestión de la base de datos es una muy buena opción si tienes cuidado en tu programación para evitar que se convierta en una ineficiencia. También este enfoque tiene sus ventajas y desventajas que si gustas comentamos.

Como ves? espero te sirva.

Saludos
Me agrada tu idea grutzen, asi que tendria problemas al hacer el query con fundador y catalago.....mmmm

pues solamente que haga pruebas, pero como podria relacionar el catalogo, seria solamente con fundador entonces seria algo asi no? :

id_palabra
palabra
id_giro
id_edo
id_

estoy en lo correcto? para obtener mi resultado exacto.

por que estaba usando algo asi:

SELECT * FROM fundador where match(nombre,direccion,estado,palabra) against ( '$giro*' '$ubicacion*' '$localidad*' in boolean mode)

este es mi query, el problema era tal vez que lo tenia en una sola tabla y tal vez por eso no estaba bien mi consulta.

lo que pasa es que si ponia "auto lavado tijuana" me aparecia todos los registros que contenian la palabra auto, lavado, tijuana y pues en realidad eso no queria por que aparecian unos que tenian en su palabra : "auto partes, auto estereos" y este es mi problema que no encontraba exactamente aquel fundador que buscaba solamente por "auto lavado"

muchas gracias por la ayuda, espero y puedas aconsejarme sobre lo que pongo aqui