summaryrefslogtreecommitdiff
path: root/php/Model.php
diff options
context:
space:
mode:
Diffstat (limited to 'php/Model.php')
-rw-r--r--php/Model.php42
1 files changed, 42 insertions, 0 deletions
diff --git a/php/Model.php b/php/Model.php
new file mode 100644
index 0000000..9d0f80f
--- /dev/null
+++ b/php/Model.php
@@ -0,0 +1,42 @@
1<?php
2// php/Model.php
3
4class Model extends Connection
5{
6 private $db; // instance de connexion
7
8 public function __construct()
9 {
10 $this->db = parent::getInstance();
11 self::create_tables();
12 }
13
14 // code SQL
15 function create_tables()
16 {
17 // la table prestations est liée à la table clients
18 // les tables devis_factures, cesu et locations sont liées à la table prestations
19 $this->db->exec("CREATE TABLE IF NOT EXISTS clients (ID INTEGER, prenom_nom TEXT, adresse TEXT, code_client TEXT, commentaires TEXT, PRIMARY KEY(ID AUTOINCREMENT));");
20 $this->db->exec("CREATE TABLE IF NOT EXISTS prestations (ID INTEGER, ID_client INTEGER, combientieme_fois INTEGER, code_presta TEXT, date INTEGER, type TEXT, mode_paiement TEXT, commentaires TEXT, PRIMARY KEY(ID AUTOINCREMENT));");
21 $this->db->exec("CREATE TABLE IF NOT EXISTS devis_factures (ID INTEGER, ID_presta INTEGER, validite_devis TEXT, signature_devis TEXT, taches TEXT, machine TEXT, OS TEXT, donnees TEXT, cles_licences TEXT, total_main_d_oeuvre INTEGER, pieces TEXT, total_pieces INTEGER, deplacement INTEGER, total_HT INTEGER, PRIMARY KEY(ID AUTOINCREMENT));");
22 $this->db->exec("CREATE TABLE IF NOT EXISTS cesu (ID INTEGER, ID_presta INTEGER, taches TEXT, duree_travail TEXT, salaire INTEGER, PRIMARY KEY(ID AUTOINCREMENT));");
23 $this->db->exec("CREATE TABLE IF NOT EXISTS locations (ID INTEGER, ID_presta INTEGER, nature_bien TEXT, valeur INTEGER, etat_des_lieux_debut TEXT, etat_des_lieux_fin TEXT, total_HT INTEGER, PRIMARY KEY(ID AUTOINCREMENT));");
24
25 // les types de variables de sqlite sont peu nombreux et autorisent un typage automatique
26 // le "type indiqué" est indiqué dans l'instruction CREATE TABLE
27 // https://www.leppf.com/site/spip.php?article89
28
29 // || type indiqué || type choisi automatiquement || autre types possibles ||
30 // ---------------------------------------------------------------------------
31 // || TEXT || TEXT || BLOB, NULL ||
32 // || INTEGER || INTEGER (de 1 à 8 octets) || REAL, TEXT, BLOB, NULL ||
33 // || REAL || REAL (flottant sur 9 octets) || TEXT, BLOB, NULL ||
34 // || NUMERIC || INTEGER ou REAL || TEXT, BLOB, NULL ||
35 // || NONE || indéfini || dépend des données ||
36
37 // du code SQL écrit pour d'autres SGBD devrait fonctionner,
38 // sqlite fera des conversions dans ses propres types avec les problèmes qu'on peut imaginer
39
40 // pour les dates, on stockera à priori le timestamp
41 }
42}