summaryrefslogtreecommitdiff
path: root/old/model version 0.1/StructTablesDB.php
diff options
context:
space:
mode:
Diffstat (limited to 'old/model version 0.1/StructTablesDB.php')
-rw-r--r--old/model version 0.1/StructTablesDB.php36
1 files changed, 36 insertions, 0 deletions
diff --git a/old/model version 0.1/StructTablesDB.php b/old/model version 0.1/StructTablesDB.php
new file mode 100644
index 0000000..303af46
--- /dev/null
+++ b/old/model version 0.1/StructTablesDB.php
@@ -0,0 +1,36 @@
1<?php
2// src/model/StructTablesDB.php
3
4// structure de données façon C
5// créer les requêtes avec implode(', ', $DbStructure)
6class StructTablesDB
7{
8 // possibilité de lire un fichier JSON
9 static public $structureOfTables = [
10 // la table prestations est liée à la table clients
11 // les tables devis_factures, cesu et locations sont liées à la table prestations
12 'clients' => ['id' => 'INTEGER', 'prenom_nom' => 'TEXT', 'code_client' => 'TEXT', 'adresse' => 'TEXT', 'code_postal' => 'TEXT', 'ville' => 'TEXT', 'telephone' => 'TEXT', 'courriel' => 'TEXT', 'apropos' => 'TEXT', 'type' => 'TEXT DEFAULT prospect'],
13 'prestations' => ['id' => 'INTEGER', 'id_client' => 'INTEGER', 'code_presta' => 'TEXT', 'date' => 'INTEGER', 'type_presta' => 'TEXT', 'mode_paiement' => 'TEXT', 'commentaires' => 'TEXT'],
14 'devis' => ['id' => 'INTEGER', 'id_presta' => 'INTEGER', 'taches' => 'TEXT', 'total_main_d_oeuvre' => 'REAL', 'pieces' => 'TEXT', 'total_pieces' => 'REAL', 'deplacement' => 'REAL', 'prix_devis' => 'REAL', 'total_HT' => 'REAL', 'delai_livraison' => 'TEXT', 'validite_devis' => 'TEXT', 'signature_devis' => 'TEXT DEFAULT non'],
15 'factures' => ['id' => 'INTEGER', 'id_presta' => 'INTEGER', 'taches' => 'TEXT', 'machine' => 'TEXT', 'OS' => 'TEXT', 'donnees' => 'TEXT', 'cles_licences' => 'TEXT', 'total_main_d_oeuvre' => 'REAL', 'pieces' => 'TEXT', 'total_pieces' => 'REAL', 'deplacement' => 'REAL', 'total_HT' => 'REAL'],
16 'cesu' => ['id' => 'INTEGER', 'id_presta' => 'INTEGER', 'taches' => 'TEXT', 'duree_travail' => 'TEXT', 'salaire' => 'REAL'],
17 'locations' => ['id' => 'INTEGER', 'id_presta' => 'INTEGER', 'designation' => 'TEXT', 'modele_description' => 'TEXT', 'valeur' => 'REAL', 'etat_des_lieux_debut' => 'TEXT', 'etat_des_lieux_fin' => 'TEXT', 'duree_location' => 'TEXT', 'loyer_mensuel' => 'REAL', 'loyers_payes' => 'INTEGER', 'caution' => 'INTEGER']
18 ];
19
20 // les types de variables de sqlite sont peu nombreux et autorisent un typage automatique
21 // le "type indiqué" est indiqué dans l'instruction CREATE TABLE
22 // https://www.leppf.com/site/spip.php?article89
23
24 // || type indiqué || type choisi automatiquement || autre types possibles ||
25 // ---------------------------------------------------------------------------
26 // || TEXT || TEXT || BLOB, NULL ||
27 // || INTEGER || INTEGER (de 1 à 8 octets) || REAL, TEXT, BLOB, NULL ||
28 // || REAL || REAL (flottant sur 9 octets) || TEXT, BLOB, NULL ||
29 // || NUMERIC || INTEGER ou REAL || TEXT, BLOB, NULL ||
30 // || NONE || indéfini || dépend des données ||
31
32 // du code SQL écrit pour d'autres SGBD devrait fonctionner,
33 // sqlite fera des conversions dans ses propres types avec les problèmes qu'on peut imaginer
34
35 // pour les dates, on stockera à priori le timestamp
36}