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

Source for file vfront.mysql.sql.php

Documentation is available at vfront.mysql.sql.php

  1. <?php
  2. /**
  3.  * SQL per MySQL 5.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.  
  25.  
  26. --
  27. --    Crea la tabella gruppo
  28. --
  29.  
  30. CREATE TABLE `gruppo` (
  31.   `gid` int(11) NOT NULL COMMENT 'ID del gruppo',
  32.   `nome_gruppo` varchar(50) NOT NULL COMMENT 'Nome del gruppo',
  33.   `descrizione_gruppo` text,
  34.   `data_gruppo` timestamp NOT NULL default CURRENT_TIMESTAMP,
  35.   PRIMARY KEY  (`gid`),
  36.   UNIQUE KEY `gid` (`gid`),
  37.   UNIQUE KEY `nome_gruppo` (`nome_gruppo`)
  38. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  39. ";
  40.  
  41. $SQL_DEFINITION[]="
  42.  
  43.  
  44. --
  45. --    Crea la tabella log, dove vengono registrate le operazioni effettuate mediante le maschere
  46. --
  47.  
  48. CREATE TABLE `log` (
  49.   `id_log` bigint(20) unsigned NOT NULL auto_increment,
  50.   `op` enum('insert','update','delete','select','sconosciuta','ripristino','duplicazione') default NULL,
  51.   `uid` int(11) unsigned NOT NULL,
  52.   `gid` int(11) unsigned NOT NULL,
  53.   `data` timestamp NOT NULL default CURRENT_TIMESTAMP,
  54.   `tabella` varchar(100) NOT NULL,
  55.   `id_record` varchar(100) default NULL,
  56.   `storico_pre` text,
  57.   `storico_post` text,
  58.   `id_istituto` int(11) default NULL,
  59.   `fonte` enum('m','s') NOT NULL default 'm',
  60.   PRIMARY KEY  (`id_log`),
  61.   KEY `op` (`op`,`uid`,`data`,`tabella`,`id_record`)
  62. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Tabella di log';
  63. ";
  64.  
  65. $SQL_DEFINITION[]="
  66.  
  67.  
  68. --
  69. --    Crea la tabella recordlock per il multiaccesso ai record
  70. --
  71.  
  72. CREATE TABLE `recordlock` (
  73.   `tabella` varchar(50) NOT NULL,
  74.   `colonna` varchar(50) NOT NULL,
  75.   `id` varchar(50) NOT NULL,
  76.   `tempo` int(11) NOT NULL,
  77.   PRIMARY KEY  (`tabella`,`colonna`,`id`)
  78. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  79. ";
  80.  
  81. $SQL_DEFINITION[]="
  82.  
  83.  
  84. --
  85. --    Crea la tabella registro tabelle, il registro di regole che vfront utilizzerà per gestire le tabelle
  86. --
  87.  
  88. CREATE TABLE `registro_tab` (
  89.   `id_table` int(10) NOT NULL auto_increment,
  90.   `gid` int(10) default NULL,
  91.   `visibile` tinyint(1) default '0',
  92.   `in_insert` int(1) unsigned NOT NULL default '0',
  93.   `in_duplica` int(1) unsigned NOT NULL default '0',
  94.   `in_update` int(1) unsigned NOT NULL default '0',
  95.   `in_delete` int(1) unsigned NOT NULL default '0',
  96.   `in_export` tinyint(1) unsigned NOT NULL default '0',
  97.   `data_modifica` int(10) default '0',
  98.   `orderby` varchar(100) default NULL,
  99.   `table_name` varchar(100) default NULL,
  100.   `table_type` varchar(20) default 'BASE TABLE',
  101.   `commento` varchar(255) default NULL,
  102.   `orderby_sort` enum('ASC','DESC') default 'ASC',
  103.   `permetti_allegati` tinyint(1) unsigned NOT NULL default '0',
  104.   `permetti_allegati_ins` tinyint(1) unsigned default '0',
  105.   `permetti_allegati_del` tinyint(1) unsigned default '0',
  106.   `permetti_link` tinyint(1) unsigned NOT NULL default '0',
  107.   `permetti_link_ins` tinyint(1) unsigned default '0',
  108.   `permetti_link_del` tinyint(1) unsigned default '0',
  109.   `view_pk` varchar(60) default NULL,
  110.   `fonte_al` varchar(100) default NULL,
  111.   PRIMARY KEY  (`id_table`),
  112.   KEY `i_gid_tab` (`gid`),
  113.   KEY `table_name` (`table_name`),
  114.   KEY `id_table` (`id_table`),
  115.   CONSTRAINT `registro_tab_fk` FOREIGN KEY (`gid`) REFERENCES `gruppo` (`gid`) ON DELETE CASCADE
  116. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  117. ";
  118.  
  119.  
  120. $SQL_DEFINITION[]="
  121.  
  122.  
  123. --
  124. --    Crea la tabella registro colonne, il registro di regole che vfront utilizzerà per gestire le colonne delle tabelle
  125. --
  126.  
  127. CREATE TABLE `registro_col` (
  128.   `id_reg` int(10) NOT NULL auto_increment,
  129.   `id_table` int(11) default NULL,
  130.   `gid` int(10) default NULL,
  131.   `column_name` varchar(255) default NULL,
  132.   `ordinal_position` int(3) default NULL,
  133.   `column_default` varchar(255) default NULL,
  134.   `is_nullable` char(3) default NULL,
  135.   `column_type` varchar(255) default NULL,
  136.   `character_maximum_length` int(10) default NULL,
  137.   `data_type` varchar(255) default NULL,
  138.   `extra` varchar(200) default NULL,
  139.   `in_tipo` text,
  140.   `in_default` text,
  141.   `in_visibile` tinyint(1) default '1',
  142.   `in_richiesto` tinyint(1) default '0',
  143.   `in_search` tinyint(1) default '1',
  144.   `in_suggest` tinyint(1) default '0',
  145.   `in_table` tinyint(1) default '1',
  146.   `in_ordine` int(3) default '0',
  147.   `jstest` mediumtext,
  148.   `commento` varchar(255) default NULL,
  149.   PRIMARY KEY  (`id_reg`),
  150.   KEY `i_registro_col_gid` (`gid`),
  151.   KEY `id_table` (`id_table`),
  152.   CONSTRAINT `FK_registro_col_1` FOREIGN KEY (`id_table`) REFERENCES `registro_tab` (`id_table`) ON DELETE CASCADE
  153. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Registro documentazione dei campi delle tabelle dello schema';
  154. ";
  155.  
  156.  
  157. $SQL_DEFINITION[]="
  158.  
  159.  
  160. --
  161. --    Crea la tabella registro sottomaschere, il registro di regole che vfront utilizzerà per gestire le sottomaschere
  162. --
  163.  
  164. CREATE TABLE `registro_submask` (
  165.   `id_submask` int(11) unsigned NOT NULL auto_increment,
  166.   `id_table` int(11) NOT NULL COMMENT 'Tabella parent per la sottomaschera',
  167.   `sub_select` tinyint(1) unsigned NOT NULL default '0',
  168.   `sub_insert` tinyint(1) default '0',
  169.   `sub_update` tinyint(1) default '0',
  170.   `sub_delete` tinyint(1) default '0',
  171.   `nome_tabella` varchar(255) default NULL COMMENT 'Tabella fonte per la sottomaschera',
  172.   `nome_frontend` varchar(250) default NULL COMMENT 'Nome per la sottomaschera che apparirà nella maschera utente',
  173.   `campo_pk_parent` varchar(80) default NULL COMMENT 'Campo che rappresenta la chiave primaria nella tabella parent',
  174.   `campo_fk_sub` varchar(80) default NULL COMMENT 'Campo che rappresenta la chiave esterna rispetto alla tabella parent',
  175.   `orderby_sub` varchar(80) default NULL COMMENT 'Campo orderby della sottomaschera',
  176.   `orderby_sub_sort` enum('ASC','DESC') default 'ASC',
  177.   `data_modifica` int(11) unsigned default NULL,
  178.   `max_records` int(3) default '10',
  179.   `tipo_vista` enum('tabella','scheda') NOT NULL default 'tabella',
  180.   PRIMARY KEY  (`id_submask`),
  181.   UNIQUE KEY `u_idtable_nometabella` (`id_table`,`nome_tabella`),
  182.   CONSTRAINT `registro_submask_fk` FOREIGN KEY (`id_table`) REFERENCES `registro_tab` (`id_table`) ON DELETE CASCADE
  183. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  184. ";
  185.  
  186. $SQL_DEFINITION[]="
  187.  
  188.  
  189. --
  190. --    Crea la tabella registro delle colonne delle sottomaschere, il registro di regole che vfront utilizzerà per gestire le colonne nelle sottomaschere
  191. --
  192.  
  193.  
  194. CREATE TABLE `registro_submask_col` (
  195.   `id_reg_sub` int(10) NOT NULL auto_increment,
  196.   `id_submask` int(11) unsigned NOT NULL,
  197.   `column_name` varchar(255) default NULL,
  198.   `ordinal_position` int(3) default NULL,
  199.   `column_default` varchar(255) default NULL,
  200.   `is_nullable` char(3) default NULL,
  201.   `column_type` varchar(255) default NULL,
  202.   `character_maximum_length` int(10) default NULL,
  203.   `data_type` varchar(255) default NULL,
  204.   `extra` varchar(200) default NULL,
  205.   `in_tipo` text,
  206.   `in_default` text,
  207.   `in_visibile` tinyint(1) default '1',
  208.   `in_richiesto` tinyint(1) default '0',
  209.   `commento` varchar(255) default NULL,
  210.   PRIMARY KEY  (`id_reg_sub`),
  211.   KEY `i_id_submask` (`id_submask`),
  212.   CONSTRAINT `registro_submask_col_fk` FOREIGN KEY (`id_submask`) REFERENCES `registro_submask` (`id_submask`) ON DELETE CASCADE
  213. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Registro documentazione dei campi delle colonne delle sottom';
  214. ";
  215.  
  216.  
  217. $SQL_DEFINITION[]="
  218.  
  219.  
  220. --
  221. --    Crea la tabella utente, per l'accreditamento dei diritti degli utenti ed (eventuale) autenticazione
  222. --
  223.  
  224.  
  225. CREATE TABLE `utente` (
  226.   `id_utente` int(11) unsigned NOT NULL auto_increment,
  227.   `nick` varchar(30) default NULL,
  228.   `passwd` char(32) default NULL,
  229.   `nome` varchar(50) default NULL,
  230.   `cognome` varchar(50) default NULL,
  231.   `email` varchar(80) default NULL,
  232.   `info` text,
  233.   `data_ins` date default NULL,
  234.   `gid` int(11) NOT NULL default '0',
  235.   `livello` int(1) NOT NULL default '1',
  236.   PRIMARY KEY  (`id_utente`),
  237.   UNIQUE KEY `id_utente` (`id_utente`),
  238.   KEY `gid` (`gid`),
  239.   CONSTRAINT `utente_fk` FOREIGN KEY (`gid`) REFERENCES `gruppo` (`gid`) ON UPDATE CASCADE
  240. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  241. ";
  242.  
  243.  
  244. $SQL_DEFINITION[]="
  245.  
  246. --
  247. --    Crea la tabella delle variabili, dove vengono archiviati alcuni parametri modificabili dell'ambiente
  248. --
  249.  
  250. CREATE TABLE `variabili` (
  251.   `variabile` char(32) NOT NULL,
  252.   `gid` int(11) NOT NULL default '0',
  253.   `valore` varchar(255) default NULL,
  254.   `descrizione` varchar(255) default NULL,
  255.   `tipo_var` varchar(20) default NULL,
  256.   PRIMARY KEY  (`variabile`,`gid`),
  257.   KEY `variabile` (`variabile`)
  258. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  259. ";
  260.  
  261.  
  262. $SQL_DEFINITION[]="
  263.  
  264.  
  265. --
  266. --    Crea la tabella allegato, dove vengono archiviate le informazioni dei file associati ai record
  267. --
  268.  
  269.  
  270. CREATE TABLE `allegato` (
  271.   `codiceallegato` int(11) NOT NULL auto_increment COMMENT 'chiave primaria identificativa del record',
  272.   `tipoentita` varchar(100) default NULL COMMENT 'identifica l''entità del database alla quale l''utente vuole collegare il file allegato. L''entità verrà riconosciuta dall''applicazione in base alle operazioni svolte in quella fase dall''utente.',
  273.   `codiceentita` int(11) default NULL COMMENT 'identifica la particolare occorrenza (record) dell''entità del database alla quale l''utente vuole collegare il file allegato',
  274.   `descroggall` varchar(250) default NULL COMMENT 'descrizione dell''oggetto del file',
  275.   `autoreall` varchar(250) default NULL COMMENT 'autore del file da allegare',
  276.   `versioneall` varchar(250) default NULL COMMENT 'eventuale numero di versione del file ',
  277.   `lastdata` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP COMMENT 'campo automaticamente valorizzato dal DBMS al primo inserimento o quando il record viene modificato',
  278.   `nomefileall` varchar(250) NOT NULL,
  279.   PRIMARY KEY  (`codiceallegato`)
  280. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='descrive i file in upload e li collega all''entità';
  281. ";
  282.  
  283.  
  284. $SQL_DEFINITION[]="
  285.  
  286. --
  287. --    Crea la tabella link, dove vengono archiviati i link associati ai record
  288. --
  289.  
  290. CREATE TABLE `link` (
  291.   `codicelink` int(11) NOT NULL auto_increment COMMENT 'chiave primaria identificativa del record',
  292.   `tipoentita` varchar(100) default NULL COMMENT 'identifica l''entità del database alla quale l''utente vuole abbinare il link ipertestuale. L''entità verrà riconosciuta dall''applicazione in base alle operazioni svolte in quella fase dall''utente.',
  293.   `codiceentita` int(11) default NULL COMMENT 'identifica la particolare occorrenza (record) dell''entità del database alla quale l''utente vuole abbinare il collegamento',
  294.   `link` varchar(250) default NULL COMMENT 'URL del link a cui si rimanda',
  295.   `descrizione` varchar(250) default NULL,
  296.   `lastdata` timestamp NOT NULL default CURRENT_TIMESTAMP COMMENT 'campo automaticamente valorizzato dal DBMS al primo inserimento o quando il record viene modificato',
  297.   PRIMARY KEY  (`codicelink`)
  298. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='lega le entità agli eventuali link ipertestuali';
  299. ";
  300.  
  301.  
  302. $SQL_DEFINITION[]="
  303.  
  304. --
  305. --    Crea la tabella statistiche, dove vengono archiviate le regole per le statistiche personalizzate
  306. --
  307.  
  308.  
  309. CREATE TABLE `stat` (
  310.   `id_stat` int(11) unsigned NOT NULL auto_increment,
  311.   `nome_stat` varchar(250) NOT NULL COMMENT 'Nome nella statistica',
  312.   `desc_stat` text COMMENT 'Descrizione della statistica',
  313.   `def_stat` text COMMENT 'Definizione della query SQL per la statistica',
  314.   `auth_stat` tinyint(1) NOT NULL default '1' COMMENT 'Tipo autorizzazione per statistica: 1=pubblica, 2=del gruppo, 3=personale',
  315.   `tipo_graph` enum('barre','torta') default 'barre',
  316.   `data_stat` timestamp NOT NULL default CURRENT_TIMESTAMP,
  317.   `autore` int(11) NOT NULL,
  318.   PRIMARY KEY  (`id_stat`),
  319.   UNIQUE KEY `id_stat` (`id_stat`),
  320.   KEY `autore` (`autore`)
  321. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Statistiche descrittive registrate dagli utenti';
  322. ";
  323.  
  324.  
  325.  
  326.  
  327. $SQL_DEFINITION[]="
  328.  
  329. --
  330. --    Crea la tabella xml_rules, dove vengono archiviate le regole per la generazione dei report XML-based
  331. --
  332.  
  333.  
  334. CREATE TABLE `xml_rules` (
  335.   `id_xml_rules` int(11) unsigned NOT NULL auto_increment,
  336.   `tabella` varchar(50) NOT NULL,
  337.   `accesso` varchar(20) NOT NULL default 'RESTRICT' COMMENT 'RESTRICT,PUBLIC,FRONTEND,GROUP',
  338.   `accesso_gruppo` varchar(100) default NULL,
  339.   `autore` int(11) default NULL,
  340.   `lastData` timestamp NOT NULL default CURRENT_TIMESTAMP,
  341.   `xsl` varchar(80) default NULL,
  342.   `xslfo` varchar(80) default NULL,
  343.   PRIMARY KEY  (`id_xml_rules`)
  344. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Regole per la definizione dei report XML based';
  345. ";
  346.  
  347.  
  348.  
  349.  
  350. $SQL_DEFINITION[]="
  351.  
  352. --
  353. --    Inserisce i dati di default nella tabella variabili
  354. --
  355.  
  356. INSERT INTO `variabili` (`variabile`, `gid`, `valore`, `descrizione`, `tipo_var`) VALUES 
  357.   ('altezza_iframe_tabella',0,'360','Altezza in numero di pixel del rettangolo per visualizzare i dati in tabella','int'),
  358.   ('crea_nuovo_valore_ref',0,'0','permette in caso di tabella parent scrivibilie l\'inserimento di nuovi valori nella medesima','bool'),
  359.   ('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'),
  360.   ('js_test',0,'0','Abilita i controlli javascript sui contenuti dei campi','bool'),
  361.   ('max_char_tabella',0,'200','Numero massimo di caratteri da visualizzare nelle viste a tabella. (0 = tutti)','int'),
  362.   ('max_tempo_edit',0,'300','Tempo di disponibilità del record','int'),
  363.   ('n_record_tabella',0,'20','Numero di record da visualizzare per le tabelle dei dati','int'),
  364.   ('passo_avanzamento_veloce',0,'20','Numero di record impostati per il movimento veloce tra i record nelle tabelle','int'),
  365.   ('textarea_cols',0,'50','Colonne per il box di testo','int'),
  366.   ('textarea_rows',0,'8','Righe per il box di testo','int'),
  367.   ('recupero_password',0,'1','Se abilitato mostra nel login l\'opzione di modificare la password (non funziona in caso di login esterno)','bool'),
  368.   ('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'),
  369.   ('shortcut_tastiera_attivi',0,'1','Abilita le scorciatoie da tastiera nelle maschere delle tabelle e delle viste','bool'),
  370.   ('shortcut_tastiera_popup',0,'1','Mostra una linguetta per leggere i comandi da tastiera nelle maschere','bool'),
  371.   ('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'),
  372.   ('usa_history',0,'1','Imposta se si deve utilizzare la history del browser','bool');
  373. ";
  374.  
  375.  
  376. $SQL_DEFINITION[]="
  377.  
  378. --
  379. --    Inserisce un gruppo fittizio, utile alla inizializzazione del sistema
  380. --
  381.  
  382. INSERT INTO `gruppo` (`gid`, `nome_gruppo`, `descrizione_gruppo`) VALUES 
  383.   (-1,'temp','gruppo di installazione, viene eliminato nella inizializzazione');
  384. ";
  385.  
  386. $SQL_DEFINITION[]="
  387.  
  388. --
  389. --    Inserisce il gruppo di default
  390. --
  391.  
  392. INSERT INTO `gruppo` (`gid`, `nome_gruppo`, `descrizione_gruppo`) VALUES 
  393.   (0,'default','gruppo di default');
  394. ";
  395.  
  396.  
  397. $SQL_DEFINITION[]="
  398.  
  399. --
  400. --    Se è andato tutto bene, conferma le query eseguite
  401. --
  402.  
  403. COMMIT;
  404. ";
  405.  
  406. ?>

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