Tengo un dilema con las reglas del postgres.
Tengo dos tablas por ejemplo persona y clientes. En persona irian datos genericos de personas y en clientes los datos de persona más los datos del cliente. Por ejemplo
PERSONAS
id
nombre
telefono
direccion
CLIENTES
personas_id
ruc
cuenta
limite_credito
la idea es crear una vista v_personas_clientes y que ahi se vean los datos completos. y quisiera hacer unas reglas para manejar la vista como una tabla. Agrego el insert como me funciona.
La pregunta es. Que tan eficiente es esto en un sistema multiusuarios? es decir el currval que uso no podria dispararse cuando otro usuario haga otro insert?
VIEW
Código PHP:
CREATE OR REPLACE VIEW "public"."v_personas_juridicas"
AS
SELECT p.id, p.nombre, p.telefono, p.direccion, c.ruc, c.cuenta, c.limite_credito
FROM (personas p JOIN clientes c ON ((c.personas_id = (p.id)::numeric)));
RULE
Código PHP:
CREATE OR REPLACE RULE rv_personas_clientes_insert AS
ON INSERT TO v_personas_clientes DO INSTEAD (
INSERT INTO personas (id, nombre, telefono, direccion)
VALUES (nextval('personas_id_seq'::regclass), new.nombre, new.telefono, new.direccion);
INSERT INTO clientes (id, ruc, cuenta, limite_credito)
VALUES (currval('personas_id_seq'::regclass), new.ruc, new.cuenta, new.limite_credito);
);