Re: Sqlite Con Foreign Keys Fk
En el vídeo, minuto 3:31 haces un click y creas una serie de controles. Si en ese momento destripas (o ya tienes destripada) el campo "sql" de la tabla slqite_master correspondiente a la tabla (o el "show create table" de MySql), obtienes las referencias de clave foránea que necesitas.
A partir de esa línea -que debería ser, en sqlite, algo así como "FOREIGN KEY(campodelatablaA) REFERENCES tablaB(nombredecampoB)"- ya tienes la tabla y el campo que referencia esa tabla. Si entonces ofreces al usuario una lista de los campos que tiene la tabla nombredetablaB para que haga click sobre el que desea ver en el desplegable, pues ya lo tienes -
Es decir almacenas en algún lado, junto con el nombre de la columna cambiado, el tamaño modificado, el nombre del campo referenciado, el nombre del/los campo/campos a visualizar, la sentencia sql que rellene el combobox resultante, etc. etc. y en futuras consultas reconstruyes el control deseado y se lo muestras al usuario-...
Viendo tu proyecto unos consejos te doy desde la experiencia de muchos años:
-Si lo que pretendes es aprender a manejar, controlar, construir y administrar bases de datos. Perfecto, sigue adelante. Tú eres el destinatario y todo el esfuerzo que pongas en el proyecto va en tu beneficio
-Si lo que pretendes hacer es facilitar la vida a quien no sabe de informática a base de un programa que presenta opciones y subopciones y opciones dentro de las subopciones, etc. etc. no se la estás facilitando en absoluto y no lo entenderá (le costará menos esfuerzo, por ejemplo, asumir los nombres raros y aprender a mirar los códigos en la tabla de al lado que aprender a configurar un entorno de visualización para cada tabla).
-Por otro lado, por mucho que te esfuerces en hacerlo sencillo, la casuística siempre te sobrepasará a la hora de abrir bases de datos hechas por otros, con cosas que no tenías previstas y tu programa quedará corto. Por ejemplo: ¿Y si la tabla B referenciada en la tabla A sólo contiene el código de A y el código de otra tabla C? todos numéricos, por supuesto. Es algo muy común en el diseño de bases de datos. Nada de todo el esfuerzo expresado arriba te sirve.
-Si lo que pretendes es ofrecer a otros una herramienta que compita con sqlitemaster y phpmyadmin juntas... pues te esperan tantos años de trabajo que no lo vas a terminar nunca. Estás peleando en solitario contra poderosas compañías de software.
Como ves, sólo te aplaudo si vas por la primera opción.
De todas y por si te sirve de ayuda te adjunto un pequeño proyecto que le hice a mi padawan para ilustrar no recuerdo qué punto de la estructura de las bases de datos de la empresa. Te muestra una lista de tablas, haciendo click sobre una de ella te muestra una lista de campos y haciendo click sobre un campo te dice si es clave foránea de alguna otra tabla.
Por desgracia sólo está codificado para mysql, pero no debería costarte mucho adaptarlo a sqlite (campo sql de la tabla sqlite_master)
Descripción: |
|
Descargar |
Nombre del archivo: |
constraints.tar.gz |
Tamaño: |
12.05 KB |
Descargado: |
63 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
constraints.tar.gz |
Tamaño: |
12.05 KB |
Descargado: |
63 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
constraints.tar.gz |
Tamaño: |
12.05 KB |
Descargado: |
63 veces |