phpDocumentor VFront
VFront_Web_Installer
[ class tree: VFront ] [ index: VFront ] [ all elements ]

Source for file vfront.postgres.sql.php

Documentation is available at vfront.postgres.sql.php

  1. <?php
  2. /**
  3.  * SQL per PostgreSQL 8.x sotto forma di file PHP.
  4.  * Ogni istruzione è un valore di un array
  5.  * 
  6.  * @package VFront
  7.  * @subpackage VFront_Web_Installer
  8.  * @author M.Marcello Verona
  9.  * @copyright 2007 M.Marcello Verona
  10.  * @version 0.90
  11.  * @license http://www.gnu.org/licenses/gpl.html GNU Public License
  12.  */
  13.  
  14. $SQL_DEFINITION[]="
  15.  
  16. --
  17. -- Inizia la procedura
  18. --
  19.  
  20. BEGIN;
  21. ";
  22.  
  23. $SQL_DEFINITION[]="
  24. CREATE SCHEMA \"frontend\" AUTHORIZATION \"postgres\";
  25.  
  26. COMMENT ON SCHEMA \"frontend\"
  27. IS 'Schema dedicato alla gestione del frontend web.';
  28.  
  29. ";
  30.  
  31.  
  32. $SQL_DEFINITION[]="
  33.  
  34.  
  35. --
  36. --    Crea la tabella gruppo
  37. --
  38.  
  39. CREATE TABLE frontend.gruppo
  40. (
  41.   gid int8 NOT NULL, -- ID del gruppo
  42.   nome_gruppo varchar(50) NOT NULL, -- Nome del gruppo
  43.   descrizione_gruppo text,
  44.   data_gruppo timestamp DEFAULT now(),
  45.   CONSTRAINT pk_gruppo PRIMARY KEY (gid),
  46.   CONSTRAINT u_gruppo_nome_gruppo UNIQUE (nome_gruppo)
  47. WITHOUT OIDS;
  48. COMMENT ON COLUMN frontend.gruppo.gid IS 'ID del gruppo';
  49. COMMENT ON COLUMN frontend.gruppo.nome_gruppo IS 'Nome del gruppo';
  50.  
  51. ";
  52.  
  53.  
  54.  
  55. $SQL_DEFINITION[]="
  56.  
  57.  
  58. --
  59. --    Crea la tabella log, dove vengono registrate le operazioni effettuate mediante le maschere
  60. --
  61.  
  62. CREATE TABLE frontend.log
  63. (
  64.   id_log serial, 
  65.   op varchar(20) NOT NULL, 
  66.   uid int8 NOT NULL,
  67.   gid int8 NOT NULL,
  68.   data timestamp DEFAULT now(),
  69.   tabella varchar(100) NOT NULL,
  70.   id_record varchar(100) default NULL,
  71.   storico_pre text,
  72.   storico_post text,
  73.   fonte char(1) NOT NULL default 'm',
  74.   CONSTRAINT pk_log PRIMARY KEY (id_log)
  75. WITHOUT OIDS;
  76.  
  77. ";
  78.  
  79.  
  80. $SQL_DEFINITION[]="
  81.  
  82.  
  83. --
  84. --    Crea la tabella recordlock per il multiaccesso ai record
  85. --
  86.  
  87. CREATE TABLE frontend.recordlock (
  88.   tabella varchar(50) NOT NULL,
  89.   colonna varchar(50) NOT NULL,
  90.   id varchar(50) NOT NULL,
  91.   tempo int4 NOT NULL,
  92.   CONSTRAINT pk_recordlock PRIMARY KEY  (tabella,colonna,id)
  93. ) WITHOUT OIDS;
  94. ";
  95.  
  96.  
  97. $SQL_DEFINITION[]="
  98.  
  99.  
  100. --
  101. --    Crea la tabella registro tabelle, il registro di regole che vfront utilizzera' per gestire le tabelle
  102. --
  103.  
  104. CREATE TABLE frontend.registro_tab (
  105.   id_table serial,
  106.   gid int8 default NULL,
  107.   visibile int2 DEFAULT 0,
  108.   in_insert int2 DEFAULT 0,
  109.   in_duplica int2 DEFAULT 0,
  110.   in_update int2 DEFAULT 0,
  111.   in_delete int2 DEFAULT 0,
  112.   in_export int2 DEFAULT 0,
  113.   data_modifica int4 default 0,
  114.   orderby varchar(100) default NULL,
  115.   table_name varchar(100) default NULL,
  116.   table_type varchar(20) default 'BASE TABLE',
  117.   commento varchar(255) default NULL,
  118.   orderby_sort char(4) default 'ASC',
  119.   permetti_allegati int2 DEFAULT 0,
  120.   permetti_allegati_ins int2 DEFAULT 0,
  121.   permetti_allegati_del int2 DEFAULT 0,
  122.   permetti_link int2 DEFAULT 0,
  123.   permetti_link_ins int2 DEFAULT 0,
  124.   permetti_link_del int2 DEFAULT 0,
  125.   view_pk varchar(60) default NULL,
  126.   fonte_al varchar(100) default NULL,
  127.   CONSTRAINT pk_id_table PRIMARY KEY  (id_table),
  128.   CONSTRAINT gid FOREIGN KEY (gid) REFERENCES frontend.gruppo (gid) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE
  129. ) WITHOUT OIDS;
  130. ";
  131.  
  132. $SQL_DEFINITION[]="CREATE INDEX i_table_name ON frontend.registro_tab USING btree (table_name);";
  133. $SQL_DEFINITION[]="CREATE INDEX i_gid ON frontend.registro_tab USING btree (gid);";
  134.  
  135.  
  136.  
  137. $SQL_DEFINITION[]="
  138.  
  139.  
  140. --
  141. --    Crea la tabella registro colonne, il registro di regole che vfront utilizzera' per gestire le colonne delle tabelle
  142. --
  143.  
  144. CREATE TABLE frontend.registro_col (
  145.   id_reg serial,
  146.   id_table int8 default NULL,
  147.   gid int8 default NULL,
  148.   column_name varchar(255) default NULL,
  149.   ordinal_position int2 default NULL,
  150.   column_default varchar(255) default NULL,
  151.   is_nullable varchar(3) default NULL,
  152.   column_type varchar(255) default NULL,
  153.   character_maximum_length int4 default NULL,
  154.   data_type varchar(255) default NULL,
  155.   extra varchar(200) default NULL,
  156.   in_tipo text,
  157.   in_default text,
  158.   in_visibile int2 DEFAULT 1,
  159.   in_richiesto int2 DEFAULT 0,
  160.   in_search int2 DEFAULT 1,
  161.   in_suggest int2 DEFAULT 0,
  162.   in_table int2 DEFAULT 1,
  163.   in_ordine int2 default '0',
  164.   jstest text,
  165.   commento varchar(255) default NULL,
  166.   CONSTRAINT pk_registro_col PRIMARY KEY  (id_reg),
  167.   CONSTRAINT fk_registro_col_1 FOREIGN KEY (id_table) REFERENCES frontend.registro_tab (id_table) ON DELETE CASCADE
  168. ) WITHOUT OIDS;
  169. ";
  170.  
  171. $SQL_DEFINITION[]="CREATE INDEX i_registro_col_gid ON frontend.registro_col USING btree (gid);";
  172. $SQL_DEFINITION[]="CREATE INDEX i_id_table ON frontend.registro_col USING btree (id_table);";
  173.  
  174.  
  175.  
  176. $SQL_DEFINITION[]="
  177.  
  178.  
  179. --
  180. --    Crea la tabella registro sottomaschere, il registro di regole che vfront utilizzera' per gestire le sottomaschere
  181. --
  182.  
  183. CREATE TABLE frontend.registro_submask (
  184.   id_submask serial,
  185.   id_table int8 NOT NULL , -- Tabella parent per la sottomaschera
  186.   sub_select  int2 DEFAULT 0,
  187.   sub_insert  int2 DEFAULT 0,
  188.   sub_update  int2 DEFAULT 0,
  189.   sub_delete  int2 DEFAULT 0,
  190.   nome_tabella varchar(255) default NULL ,-- Tabella fonte per la sottomaschera
  191.   nome_frontend varchar(250) default NULL ,-- Nome per la sottomaschera che apparira' nella maschera utente
  192.   campo_pk_parent varchar(80) default NULL ,-- Campo che rappresenta la chiave primaria nella tabella parent
  193.   campo_fk_sub varchar(80) default NULL ,-- Campo che rappresenta la chiave esterna rispetto alla tabella parent
  194.   orderby_sub varchar(80) default NULL, -- Campo orderby della sottomaschera
  195.   orderby_sub_sort char(4) default 'ASC',
  196.   data_modifica int8 default NULL,
  197.   max_records int2 default '10',
  198.   tipo_vista char(8) NOT NULL default 'tabella',
  199.    CONSTRAINT pk_registro_submask PRIMARY KEY  (id_submask),
  200.   CONSTRAINT u_registro_submask_nome_gruppo UNIQUE (id_table,nome_tabella),
  201.   CONSTRAINT fk_registro_submask FOREIGN KEY (id_table) REFERENCES frontend.registro_tab (id_table) ON DELETE CASCADE
  202. ) WITHOUT OIDS;
  203. ";
  204.  
  205.  
  206.  
  207. $SQL_DEFINITION[]="
  208.  
  209.  
  210. --
  211. --    Crea la tabella registro delle colonne delle sottomaschere, il registro di regole che vfront utilizzera' per gestire le colonne nelle sottomaschere
  212. --
  213.  
  214.  
  215. CREATE TABLE frontend.registro_submask_col (
  216.   id_reg_sub serial,
  217.   id_submask int8 NOT NULL,
  218.   column_name varchar(255) default NULL,
  219.   ordinal_position int2 default NULL,
  220.   column_default varchar(255) default NULL,
  221.   is_nullable varchar(3) default NULL,
  222.   column_type varchar(255) default NULL,
  223.   character_maximum_length int4 default NULL,
  224.   data_type varchar(255) default NULL,
  225.   extra varchar(200) default NULL,
  226.   in_tipo text,
  227.   in_default text,
  228.   in_visibile int2 DEFAULT 1,
  229.   in_richiesto int2 DEFAULT 0,
  230.   commento varchar(255) default NULL,
  231.   CONSTRAINT pk_registro_submask_col PRIMARY KEY  (id_reg_sub),
  232.   
  233.   CONSTRAINT fk_registro_submask_col FOREIGN KEY (id_submask) REFERENCES frontend.registro_submask (id_submask) ON DELETE CASCADE
  234. ) WITHOUT OIDS;
  235. ";
  236.  
  237. $SQL_DEFINITION[]="CREATE INDEX i_id_submask ON frontend.registro_submask_col USING btree (id_submask);";
  238.  
  239.  
  240. $SQL_DEFINITION[]="
  241.  
  242.  
  243. --
  244. --    Crea la tabella utente, per l'accreditamento dei diritti degli utenti ed (eventuale) autenticazione
  245. --
  246.  
  247.  
  248. CREATE TABLE frontend.utente (
  249.   id_utente serial,
  250.   nick varchar(30) default NULL,
  251.   passwd char(32) default NULL,
  252.   nome varchar(50) default NULL,
  253.   cognome varchar(50) default NULL,
  254.   email varchar(80) default NULL,
  255.   info text,
  256.   data_ins date default now(),
  257.   gid int8 NOT NULL default '0',
  258.   livello int2 NOT NULL default '1',
  259.   CONSTRAINT pk_utente  PRIMARY KEY  (id_utente),
  260.   CONSTRAINT u_id_utente UNIQUE (id_utente),
  261.   CONSTRAINT fk_utente FOREIGN KEY (gid) REFERENCES frontend.gruppo (gid) ON UPDATE CASCADE
  262. ) WITHOUT OIDS;
  263. ";
  264. $SQL_DEFINITION[]="CREATE INDEX i_utente_gid ON frontend.utente USING btree (gid);";
  265.  
  266.  
  267. $SQL_DEFINITION[]="
  268.  
  269. --
  270. --    Crea la tabella delle variabili, dove vengono archiviati alcuni parametri modificabili dell'ambiente
  271. --
  272.  
  273. CREATE TABLE frontend.variabili (
  274.   variabile varchar(32) NOT NULL,
  275.   gid int8 NOT NULL default '0',
  276.   valore varchar(255) default NULL,
  277.   descrizione varchar(255) default NULL,
  278.   tipo_var varchar(20) default NULL,
  279.   CONSTRAINT pk_variabili PRIMARY KEY  (variabile,gid)
  280. ) WITHOUT OIDS;
  281. ";
  282.  
  283. $SQL_DEFINITION[]="CREATE INDEX i_variabile ON frontend.variabili USING btree (variabile);";
  284.  
  285.  
  286.  
  287. $SQL_DEFINITION[]="
  288.  
  289.  
  290. --
  291. --    Crea la tabella allegato, dove vengono archiviate le informazioni dei file associati ai record
  292. --
  293.  
  294.  
  295. CREATE TABLE frontend.allegato (
  296.   codiceallegato serial , -- chiave primaria identificativa del record
  297.   tipoentita varchar(100) default NULL , -- 'identifica l''entita' del database alla quale l''utente vuole collegare il file allegato. L''entita'' verra riconosciuta dall''applicazione in base alle operazioni svolte in quella fase dall''utente.',
  298.   codiceentita int8 default NULL , --identifica la particolare occorrenza (record) dell''entita del database alla quale l''utente vuole collegare il file allegato',
  299.   descroggall varchar(250) default NULL, -- 'descrizione dell''oggetto del file',
  300.   autoreall varchar(250) default NULL , -- 'autore del file da allegare',
  301.   versioneall varchar(250) default NULL , -- 'eventuale numero di versione del file ',
  302.   lastdata timestamp NOT NULL default CURRENT_TIMESTAMP , --  'campo automaticamente valorizzato dal DBMS al primo inserimento o quando il record viene modificato',
  303.   nomefileall varchar(250) NOT NULL,
  304.   CONSTRAINT pk_allegato PRIMARY KEY (codiceallegato)
  305. ) WITHOUT OIDS;
  306. ";
  307.  
  308.  
  309. $SQL_DEFINITION[]="
  310.  
  311. --
  312. --    Crea la tabella link, dove vengono archiviati i link associati ai record
  313. --
  314.  
  315. CREATE TABLE frontend.link (
  316.   codicelink serial , --  'chiave primaria identificativa del record',
  317.   tipoentita varchar(100) default NULL , --  'identifica l''entita del database alla quale l''utente vuole abbinare il link ipertestuale. L''entita verra riconosciuta dall''applicazione in base alle operazioni svolte in quella fase dall''utente.',
  318.   codiceentita int8 default NULL , --  'identifica la particolare occorrenza (record) dell''entita del database alla quale l''utente vuole abbinare il collegamento',
  319.   link varchar(250) default NULL , --  'URL del link a cui si rimanda',
  320.   descrizione varchar(250) default NULL,
  321.   lastdata timestamp NOT NULL default CURRENT_TIMESTAMP , --  'campo automaticamente valorizzato dal DBMS al primo inserimento o quando il record viene modificato',
  322.   CONSTRAINT pk_link PRIMARY KEY  (codicelink)
  323. ) WITHOUT OIDS;
  324. ";
  325.  
  326.  
  327. $SQL_DEFINITION[]="
  328.  
  329. --
  330. --    Crea la tabella statistiche, dove vengono archiviate le regole per le statistiche personalizzate
  331. --
  332.  
  333.  
  334. CREATE TABLE frontend.stat (
  335.   id_stat serial,
  336.   nome_stat varchar(250) NOT NULL , --  'Nome nella statistica',
  337.   desc_stat text , --  'Descrizione della statistica',
  338.   def_stat text , --  'Definizione della query SQL per la statistica',
  339.   auth_stat int2 DEFAULT 3 , --  'Tipo autorizzazione per statistica: 1=pubblica, 2=del gruppo, 3=personale',
  340.   tipo_graph char(8) default 'barre',
  341.   data_stat timestamp NOT NULL default now(),
  342.   autore int8 NOT NULL,
  343.   CONSTRAINT pk_stat PRIMARY KEY  (id_stat)
  344.   
  345. ) WITHOUT OIDS;
  346. ";
  347. $SQL_DEFINITION[]="CREATE INDEX i_autore_stat ON frontend.stat USING btree (autore);";
  348.  
  349.  
  350.  
  351. $SQL_DEFINITION[]="
  352.  
  353. --
  354. --    Crea la tabella xml_rules, dove vengono archiviate le regole per la generazione dei report XML-based
  355. --
  356.  
  357. CREATE TABLE frontend.xml_rules
  358. (
  359.   id_xml_rules serial,
  360.   tabella varchar(50) NOT NULL,
  361.   accesso varchar(20) DEFAULT 'RESTRICT'::character varying, 
  362.   accesso_gruppo varchar(100),
  363.   autore int4,
  364.   lastdata timestamp DEFAULT now(),
  365.   xsl varchar(80),
  366.   xslfo varchar(80),
  367.   tipo_report char(1) DEFAULT 't'::bpchar,
  368.   def_query text,  
  369.   nome_report varchar(255),
  370.   CONSTRAINT pk_xml_rules PRIMARY KEY (id_xml_rules)
  371. WITHOUT OIDS;
  372. ";
  373.  
  374. $SQL_DEFINITION[]="
  375. COMMENT ON COLUMN frontend.xml_rules.accesso IS 'RESTRICT,PUBLIC,FRONTEND,GROUP';";
  376.  
  377. $SQL_DEFINITION[]="
  378. COMMENT ON COLUMN frontend.xml_rules.tipo_report IS 'Report basato su tabella (t) o su query (q)';";
  379.  
  380. $SQL_DEFINITION[]="
  381. COMMENT ON COLUMN frontend.xml_rules.def_query IS 'Query di definizione per i report di tipo \"query\"';";
  382.  
  383.  
  384.  
  385. $SQL_DEFINITION[]="
  386.  
  387. --
  388. --    Inserisce i dati di default nella tabella variabili
  389. --
  390.  
  391.  
  392. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('altezza_iframe_tabella',0,'360','Altezza in numero di pixel del rettangolo per visualizzare i dati in tabella','int');
  393. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('crea_nuovo_valore_ref',0,'0','permette in caso di tabella parent scrivibilie l\'inserimento di nuovi valori nella medesima','bool');
  394. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('formati_attach',0,'doc,xls,pdf,rtf,odt,sxw,ppt,odp,ods,gif,jpg,png,jpeg,zip,txt,csv,DOC,XLS,PDF,RTF,ODT,SXW,PPT,ODP,ODS,GIF,JPG,PNG,JPEG,ZIP,TXT,CSV','Formati permessi per i file allegati, separati da virgola','string');
  395. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('js_test',0,'0','Abilita i controlli javascript sui contenuti dei campi','bool');
  396. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('max_char_tabella',0,'200','Numero massimo di caratteri da visualizzare nelle viste a tabella. (0 = tutti)','int');
  397. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('max_tempo_edit',0,'300','Tempo di disponibilita del record','int');
  398. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('n_record_tabella',0,'20','Numero di record da visualizzare per le tabelle dei dati','int');
  399. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('passo_avanzamento_veloce',0,'20','Numero di record impostati per il movimento veloce tra i record nelle tabelle','int');
  400. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('textarea_cols',0,'50','Colonne per il box di testo','int');
  401. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('textarea_rows',0,'8','Righe per il box di testo','int');
  402. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('usa_calendari',0,'1','Indica se devono essere utilizzati o meno i calendari per facilitare l\'inserimento nei campi data (0=no, 1=si)','bool');
  403. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('usa_history',0,'1','Imposta se si deve utilizzare la history del browser','bool');
  404. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('server_xslt',0,'1','Indica se utilizzare la trasformazione XSLT lato server - da disabilitare in caso di mancato supporto PHP(0=no, 1=si)','bool');
  405. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('shortcut_tastiera_attivi',0,'1','Abilita le scorciatoie da tastiera nelle maschere delle tabelle e delle viste','bool');
  406. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('shortcut_tastiera_popup',0,'1','Mostra una linguetta per leggere i comandi da tastiera nelle maschere','bool');
  407. INSERT INTO frontend.variabili (variabile, gid, valore, descrizione, tipo_var) VALUES   ('recupero_password',0,'1','Se abilitato mostra nel login l\'opzione di modificare la password (non funziona in caso di login esterno)','bool');
  408. ";
  409.  
  410.  
  411. $SQL_DEFINITION[]="
  412.  
  413. --
  414. --    Inserisce un gruppo fittizio, utile alla inizializzazione del sistema
  415. --
  416.  
  417. INSERT INTO frontend.gruppo (gid, nome_gruppo, descrizione_gruppo) VALUES 
  418.   (-1,'temp','gruppo di installazione, viene eliminato nella inizializzazione');
  419. ";
  420.  
  421. $SQL_DEFINITION[]="
  422.  
  423. --
  424. --    Inserisce il gruppo di default
  425. --
  426.  
  427. INSERT INTO frontend.gruppo (gid, nome_gruppo, descrizione_gruppo) VALUES 
  428.   (0,'default','gruppo di default');
  429. ";
  430.  
  431.  
  432. $SQL_DEFINITION[]="
  433.  
  434. --
  435. --    Se va tutto bene, conferma le query eseguite
  436. --
  437.  
  438. COMMIT;
  439. ";
  440.  
  441.  
  442.  
  443. ?>

Documentation generated on Sat, 22 Sep 2007 11:51:42 +0200 by phpDocumentor 1.4.0a2