Hola amigos,
Espero poder ser claro con algunas dudas que tengo.
Estoy creando una relación de tablas usando llaves foráneas.
Uso Firebird 2.0 y componentes IBX en Turbo Delphi
Las tablas que tengo, sus llaves primarias
(PK) y sus llaves foráneas
(FK) son las siguientes:
RECTORIAS
PK ID_Rectoria VARCHAR(3)
Nombre VARCHAR(30)
DIVISIONES
FK PK ID_Rectoria VARCHAR(3)
PK ID_Division VARCHAR(3)
Nombre VARCHAR(30)
DEPARTAMENTOS
FK PK ID_Rectoria VARCHAR(3)
FK PK ID_Division VARCHAR(3)
PK ID_Departamento VARCHAR(3)
Nombre VARCHAR(30)
SECCIONES
FK PK ID_Rectoria VARCHAR(3)
FK PK ID_Division VARCHAR(3)
FK PK ID_Departamento VARCHAR(3)
PK ID_Seccion VARCHAR(3)
Nombre VARCHAR(30)
Intento con esta relación de tablas generar agrupaciones de tipo organizacional.
Nota: Uso VarChar(3) ya que requiero que los datos tengan la forma:
RECTORIA+DIVISION+DEPARTAMENTO+SECCION
001+001+001+001
Preguntas:
¿Están bien creadas las relaciones y llaves?
¿Como generar automáticamente un consecutivo 001-002-003 en los campos dentro de la base de datos (con un procedimiento almacenado o con un Disparador)? Por ejemplo:
Cuando presiono el boton de Agregar en RECTORIA
RECTORIA = 001+
Cuando agrego una DIVISION y selecciono una RECTORIA, genere el siguiente número para la DIVISION
DIVISION = RECTORIA 001+
Cuando agrego una DEPARTAMENTO y selecciono una RECTORIA y una DIVISION, genere el siguiente número para el DEPARTAMENTO
DEPARTAMENTO = RECTORIA DIVISION 001+
Cuando agrego una SECCION y selecciono una RECTORIA una DIVISION y un DEPARTAMENTO, genere el siguiente número para el DEPARTAMENTO
SECCION = RECTORIA DIVISION DEPARTAMENTO 001+
Espero haber sido claro con mis desorden mental.
Gracias anticipadas.
Salud OS.