Base De Datos Mysql Relacional


Ir a la página 1, 2  Siguiente

Objetivo: Base De Datos Mysql Relacional
Necesito ayuda o que me ejemplos para saber como puedo hacer para guardar datos obtenidos de un formulario, guardarlos en mi base de datos de MySQL. No se de que manera puedo hacer esto. Por los momentos lo estoy tengo trabajando guardando cada tabla por separado y asi me va bien me guarda los datos pero no me es factible porque tuve que quitarle la relación a mi base de datos. Espero que me puedan ayudar,

Tambien tengo un problemita tengo un datetime lo uso para introducir una hora que debo de guardar pero no me funciona con intervalos de horas como 11:23 solo intervalos de 30 a 30 minutos es decir me los guarda solo 11:30 11:00 .......

esto es para un proyecto

Gracias por su ayuda ante todo

Perfil MP  
Objetivo: Re: Base De Datos Mysql Relacional
Sube tu proyecto, o una parte simplificada del mismo donde se vea el problema.
Se pueden hacer las cosas de muchas formas diferentes. Si no sabemos lo que has intentado y dónde te falla, imposible ayudarte.

Saludos.

Perfil MP  
Objetivo: Re: Base De Datos Mysql Relacional
aca esta la forma en la cual estoy usando el codigo y cada proceso guarda por separado de esta manera no puedo guardar con mi base de datos relacionado, de esta manera solo guarda con la base de datos sin relacion, les agradezco, me urge resolver esos problemas que plantee.


Public Sub Button22_Click()
If numboleta.text = "" Or fecha.Value = "" Or horam.text = "" Or nomapelli.Text = "" Or nacionalidad.Text = "" Or numcedu.Text = "" Or numtlf.text = "" Or condicion.Text = "" Or gradolic.Text = "" Or direccion.text = "" Or placaauto.Text = "" Or marcaauto.Text = "" Or modelauto.Text = "" Or tipoauto.Text = "" Or colorauto.text = "" Or yearsauto.text = "" Or placafunci.Text = "" Or nombrefuncionario.text = "" Or art169.text = "" Or art170.Text = "" Or art171.text = "" Or art174.Text = "" Or art175.text = "" Or observacion.text = "" Or lugarinf.Text = "" Or fechacompadecer.Value = "" Or hora.Text = "" Or montosancion.Text = "" Then
Message.Error("Debe llenar todos los campos obligatorios")
Else
Guardarpersonas()
Guardarauto
Guardarmulta()
GUardarinfraccion()
Guardarcita()
Cleanform()
Endif
End

Public Sub Guardarpersonas()
Conec.conectar
Conec.query = ("INSERT INTO Personas ( nomapellido , nacionalidad, cedula, Glicencia, condicion, direccion, telefono) VALUES ('" & nomapelli.text & "','" & nacionalidad.text & "','" & numcedu.text & "','" & gradolic.text & "','" & condicion.text & "','" & direccion.text & "','" & numtlf.text & "');")
Try Conec.cn.Exec(Conec.query)
If Error Then
Message(Error.Text)
Message.Error("No se pudo ingresar el registro")
Message.Error(Conec.cn.Error)
Message.Info(Conec.query)
Else
Message.Info("Se ha guardado La Multa")
Conec.$Result = Conec.cn.Exec("SELECT id_persona From Personas ORDER BY id_persona DESC LIMIT 1")
End If
Conec.desconectar
End


Public Sub Guardarauto()
Conec.conectar
Conec.query = ("INSERT INTO Carro ( Matricula , Marca, Modelo, Color, Tipo, year) VALUES ('" & placaauto.text & "','" & marcaauto.text & "','" & modelauto.text & "','" & tipoauto.text & "','" & yearsauto.text & "','" & colorauto.text & "');")
Try Conec.cn.Exec(Conec.query)
If Error Then
Message(Error.Text)
Message.Error("No se pudo ingresar el registro del auto")
Message.Error(Conec.cn.Error)
Message.Info(Conec.query)
Else
' Message.Info("Se ha guardado los datos del auto")
Conec.$Result = Conec.cn.Exec("SELECT id_carro From Carro ORDER BY id_carro DESC LIMIT 1")
Endif
Conec.desconectar
End
Public Sub Guardarmulta()
Conec.conectar
Conec.query = ("INSERT INTO Multa ( numulta , fecha, placafuncionario, nomb_funcionario) VALUES ('" & numboleta.text & "','" & Format(fecha.value, "yyyy-mm-dd") & "','" & placafunci.text & "','" & nombrefuncionario.text & "');")
Try Conec.cn.Exec(Conec.query)
If Error Then
Message(Error.Text)
Message.Error("No se pudo ingresar el registro del multa")
Message.Error(Conec.cn.Error)
Message.Info(Conec.query)
Else
' Message.Info("Se ha guardado los datos del multa")
Conec.$Result = Conec.cn.Exec("SELECT id_multa From Multa ORDER BY id_multa DESC LIMIT 1")
Endif
Conec.desconectar
End

Public Sub Guardarinfraccion()
Conec.conectar
Conec.query = ("INSERT INTO Infraccion ( art169 , art170, art171, art174, art175, observacion, lugar_inf) VALUES ('" & art169.text & "','" & art170.text & "','" & art171.text & "','" & art174.text & "','" & art175.text & "','" & observacion.text & "', '" & lugarinf.text & "');")
Try Conec.cn.Exec(Conec.query)
If Error Then
Message(Error.Text)
Message.Error("No se pudo ingresar el registro del auto")
Message.Error(Conec.cn.Error)
Message.Info(Conec.query)
Else
' Message.Info("Se ha guardado los datos del auto")
Conec.$Result = Conec.cn.Exec("SELECT id_carro From Carro ORDER BY id_carro DESC LIMIT 1")
Endif
Conec.desconectar
End

Public Sub Guardarcita()
Conec.conectar
Conec.query = ("INSERT INTO cita ( fecha_c , hora_cita, monto) VALUES ('" & Format(fecha.value, "yyyy-mm-dd") & "','" & hora.text & "','" & montosancion.text & "');")
Try Conec.cn.Exec(Conec.query)
If Error Then
Message(Error.Text)
Message.Error("No se pudo ingresar el registro del cita")
Message.Error(Conec.cn.Error)
Message.Info(Conec.query)
Else
' Message.Info("Se ha guardado los datos de la cita")
Conec.$Result = Conec.cn.Exec("SELECT id_cita From cita ORDER BY id_cita DESC LIMIT 1")
Endif
Conec.desconectar
End

última edición por DaniellD el Jueves, 30 Junio 2016, 02:19; editado 3 veces
Perfil MP  
Objetivo: Re: Base De Datos Mysql Relacional
Hola DaniellD

Una cosita con respecto a esto!
Citar:

Conec.query = ("INSERT INTO Carro ( Matricula , Marca, Modelo, Color, Tipo, year) VALUES ('" & placaauto.text & "','" & marcaauto.text & "','" & modelauto.text & "','" & tipoauto.text & "','" & yearsauto.text & "','" & colorauto.text & "');")


Yo ahorita me encuentro haciendo un ejercicio de este tipo pero con una base de datos llamada agencia_vehiculos según la idea del modelado de la base de datos es que trates de ver que se repite en tu tabla "Carro" para evitar la redundancia de datos innecesarios por ejemplo yo noto que tienes la marca el modelo y color en una misma tabla, no se pero yo pienso que deberías de hacer otras tablas como marca aparte, modelo aparte y color en otra!, para que las llaves foráneas queden dentro de la de carro porque se puede presentar el caos en que hayan muchos carros de la misma marca o modelo y color.

A los compañeros les pregunto lo mismo no se si esta bien que si se deberia de sacar la marca, modelo y color en otras tablas y luego solo insertar las foraneas dentro de la tabla vehiculo para evitar la repeticiones de marcas, modelos y colores por supuesto que las foraneas de estas deberan repetirse en la tabla de vehiculo, pero vuelvo y pregunto es correcto hacerlo asi? gracias.

Objetivo: Re: Base De Datos Mysql Relacional
Tu código no tiene errores obvios sintácticos (otra cosa es el planteamiento que haces, pero eso es más particular de cada uno), por lo que el error no está en él.
El problema es el diseño de la base de datos o el tratamiento de las tablas que haces en el código (la sintáxis está bien, pero las consultas puede que no).

Estos son las tablas que manejas:

Personas ( nomapellido , nacionalidad, cedula, Glicencia, condicion, direccion, telefono)

Carro ( Matricula , Marca, Modelo, Color, Tipo, year)

Multa ( numulta , fecha, placafuncionario, nomb_funcionario)

Infraccion ( art169 , art170, art171, art174, art175, observacion, lugar_inf)

cita ( fecha_c , hora_cita, monto)

Definen, con mayor o menor fortuna, los elementos que manejas pero ¿dónde está la relación?)
¿Qué te relaciona la Persona, por ejemplo, con el carro?
¿Cómo sabes qué infracciones tiene un carro o una persona concreta?.
¿Cómo sabes a quién corresponde una cita?

Dices:
Citar:
guarda los datos pero no me es factible porque tuve que quitarle la relación a mi base de datos

No sé a qué te refieres con "quitarle la relación" pero lo que ahí tienes un conjunto inconexo de listas de datos que no sirven para nada...
Estamos manejando Bases de datos Relacionales. Sin relación no hay base de datos.

Trabajate la base de datos que es donde tienes el problema, no en el código de gambas.

Saludos.

Perfil MP  
Objetivo: Re: Base De Datos Mysql Relacional
Citar:
A los compañeros les pregunto lo mismo no se si esta bien que si se deberia de sacar la marca, modelo y color en otras tablas y luego solo insertar las foraneas dentro de la tabla vehiculo para evitar la repeticiones de marcas, modelos y colores por supuesto que las foraneas de estas deberan repetirse en la tabla de vehiculo, pero vuelvo y pregunto es correcto hacerlo asi? gracias.


Eso es lo correcto, Jousseph, sobre el papel. Pero no siempre lo puramente correcto es lo adecuado. Depende del objeto del proyecto que esté haciendo DanielID. Si lo que se trata es un ejercicio para clase sobre bases de datos, es una cosa, si se trata de llevar tus propias multas de tráfico (¡y las de tu mujer!), es otra y si lo que quieres es organizar una compañía de seguros o un cuartel de policía es otra muy distinta.

Todo depende del problema que se enfrente. Nunca hay que olvidar que el objeto de nuestro trabajo no es hacer bases de datos ni líneas de código, eso son las herramientas. Nuestro trabajo es solucionar problemas de la vida real y es la vida real la que marca qué es y qué no es adecuado en cada caso.

Saludos.

Perfil MP  
Objetivo: Re: Base De Datos Mysql Relacional
Citar:
Tambien tengo un problemita tengo un datetime lo uso para introducir una hora que debo de guardar pero no me funciona con intervalos de horas como 11:23 solo intervalos de 30 a 30 minutos es decir me los guarda solo 11:30 11:00 .......

Si un control no es adecuado, no lo uses.
Hace un tiempo subí uno que te permite seleccionar intervalos de cinco minutos.
Lo tienes aquí: https://foro.gambas-es.org/viewtopic.php?f=5&t=5163

Pero si tú necesitas la hora exacta, usa un maskbox o un valuebox y que el usuario teclee.

Perfil MP  
Objetivo: Re: Base De Datos Mysql Relacional
Hola Sr Shordi

Citar:
Eso es lo correcto, Jousseph, sobre el papel. Pero no siempre lo puramente correcto es lo adecuado. Depende del objeto del proyecto que esté haciendo DanielID. Si lo que se trata es un ejercicio para clase sobre bases de datos, es una cosa, si se trata de llevar tus propias multas de tráfico (¡y las de tu mujer!), es otra y si lo que quieres es organizar una compañía de seguros o un cuartel de policía es otra muy distinta.


Señor Shordi

Vamos a suponer que yo quiero hacer bases de datos profesionales y quisiera hacer las tablas así en VEHÍCULOS por ejemplo la marca del vehículo, el modelo y color en diferentes tablas, usted cree que eso es profesional? recuerdo a un compañero que me dijo que evitando tener exceso de campos en una tabla es redundancia y genera lentitud en una bd y que si tienes todo hecho con muchas tablas aparte es mucho mas eficiente y rápida la bd en las consultas, es verdad? claro siempre y cuando estas tablas estén correctamente analizadas y relacionadas.

Yo quiero tener bien claro esto para dedicarme a lo que realmente es, gracias.

Objetivo: Re: Base De Datos Mysql Relacional
Citar:
Vamos a suponer que yo quiero hacer bases de datos profesionales y quisiera hacer las tablas así en VEHÍCULOS por ejemplo la marca del vehículo, el modelo y color en diferentes tablas, usted cree que eso es profesional? recuerdo a un compañero que me dijo que evitando tener exceso de campos en una tabla es redundancia y genera lentitud en una bd y que si tienes todo hecho con muchas tablas aparte es mucho mas eficiente y rápida la bd en las consultas, es verdad? claro siempre y cuando estas tablas estén correctamente analizadas y relacionadas.

Yo quiero tener bien claro esto para dedicarme a lo que realmente es, gracias.


Tu compañero lleva toda la razón. La esencia de la integridad referencial es que cada dato (salvo los individuales, claro) esté perfectamente categorizado, relacionado y, por tanto, depurado. Se prima la fiabilidad sobre la sencillez (aunque una vez que comprendes cómo funciona y tienes las herramientas adecuadas, no es difícil).
Que eso sea más rápido para la BD de gestionar... bueeeno.... depende de otros factores también, sobre todo de la cantidad de registros de las tablas. Digamos que a nivel de usuario normal eso es indifirente. Para grandes desarrollos (bancos, hacienda, etc.) hay que pensar un poquito más...

Pero, aún así, insisto en que un profesional soluciona problemas, no los crea. Por ejemplo:
Imagina que Daniel lo que quiere es llevar las multas de su familia. Salvo que su mujer sea un auténtico desastre y sus hijos hayan salido a ella, no tendrá tantos registros que guardar.
Si te pide que le hagas un programa para controlar eso y dices "se lo voy a hacer bien porque soy un Profesional". Entonces le metes:
Una tabla de

personas
relaciones personales(padre, hijo, etc)
vehículos
marcas
modelos
colores
multas
citas
pagos
modalidades de pago
plazos
agentes de tráfico

Con eso lo conviertes en un pobre infeliz:
¿Tabla de Personas? "Mi mujer y mis hijos"
¿Vehículos? "Mi Coche"
¿Marcas? "Pues eso"
¿Modelos? "Yo qué sé... ¿Tengo que comprarme el catálogo para 2016?"
¿Colores? "64 millones o así"
¿Agentes de tráfico? "¿De dónde saco eso?"

Etc. etc.
Como se dice en mi tierra "Para ese viaje no hacía falta tanta alforja". Eso no sería profesional.

El que uno sepa construir rascacielos no quiere decir que debe colocar uno cada vez que le piden una caseta para el perro...

No sé si me explico: Un profesional soluciona problemas.

última edición por shordi el Sabado, 02 Julio 2016, 11:03; editado 1 vez
Perfil MP  
Objetivo: Re: Base De Datos Mysql Relacional
Citar:
El que uno sepa construir rascacielos no quiere decir que debe colocar uno cada vez que le piden una caseta para el perro...


Jejeje si ya entiendo que las cosas se hacen así solo cuando realmente sea necesario.

Gracias, saludos.

Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.2674s (PHP: 46% SQL: 54%)
Consultas SQL: 25 - Debug off - GZIP Activado