MySQL
De Didaquest
- site officiel: https://www.mysql.com/
- Logiciel pour Conception et gestion visuelle des bases de données (architecture, relation, design...): https://dev.mysql.com/downloads/workbench/
- Cours et tutoriels sur le langage SQL: https://sql.sh/
Relation entre table
- Realtion entre table : Tuto simple : https://www.bonbache.fr/relations-entre-les-tables-d-une-base-mysql-382.html
- Type de relation : https://openclassrooms.com/fr/courses/4449026-initiez-vous-a-lalgebre-relationnelle-avec-le-langage-sql/4449033-decouvrez-le-concept-de-relation
- Table intermediaire - classe d'association - clé primaire composée de clés secondaires: https://openclassrooms.com/fr/courses/4055451-modelisez-et-implementez-une-base-de-donnees-relationnelle-avec-uml/4457718-mettez-en-oeuvre-les-differents-types-de-relations-a-laide-des-cles-etrangeres
- Pour créer une clés primaire composés de clés secondaire : Lorsque tu crées la table, tu coche la case clé primaire sur tous les champs concernés et cela fait une clé primaire composée. - Si la table est déjà crée avec une clé primaire, tu supprimes la clé primaire et tu recoche les cases qui vont bien.
- Exemple via code: [1]
Short version: CREATE TABLE Relation ( stu_id INT NOT NULL REFERENCES Student, par_id INT NOT NULL REFERENCES Parent, PRIMARY KEY (stu_id, par_id) ) ;
Long version (en donnant un autre nom à la table car le nom relation reste vague CREATE TABLE Guardian ( -- columns student_id INT NOT NULL, parent_id INT NOT NULL, -- constraints CONSTRAINT Guardian_PK -- the name of the PK constraint PRIMARY KEY (student_id, parent_id),
CONSTRAINT Student_Guardian_FK -- the name of the FK constraint FOREIGN KEY (student_id) REFERENCES Student (student_id) ON UPDATE CASCADE -- the actions of the FK ON DELETE RESTRICT, CONSTRAINT Parent_Guardian_FK -- second FK FOREIGN KEY (parent_id) REFERENCES Parent (parent_id) ON UPDATE CASCADE ON DELETE RESTRICT ) ;
Catégories et sous-sous...catégories
- En Français
- https://www.developpez.net/forums/d502326/bases-donnees/mysql/requetes/creer-categories-sous-sous-categories/
- avec fichiers sources simples : http://nyrodev.info/fr/posts/127/PHP-MySQL-Mettre-en-place-des-categories-sur-differents-niveaux
- avec variable globale : https://www.developpez.net/forums/d1580805/php/php-base-donnees/php-mysql/affichage-categories-sous-categories/
- https://www.webrankinfo.com/forum/t/comment-programmeriez-vous-un-menu-avec-sous-categories-infinie.190493/
- https://www.coinduwebmaster.com/menu-arborescent-fonction-recursive-php/89/
Notre préférence: (Représentation intervallaire = MPTT en anglais (Modified Preorder Tree Traversal)) * https://sqlpro.developpez.com/cours/arborescence/ * https://zestedesavoir.com/tutoriels/250/la-representation-intervallaire/ * http://www.finalclap.com/faq/252-representation-invervallaire * https://jean.traulle.net/2015/02/representation-intervallaire/ * https://blog.developpez.com/sqlpro/p11925/langage-sql-norme/tri-combine-dans-un-arbre-intervallaire
- En Anglais
- https://stackoverflow.com/questions/30563382/fetch-subcategory-in-fetched-category
- https://stackoverflow.com/questions/20215744/how-to-create-a-mysql-hierarchical-recursive-query
- Avec d'autres langage:
- - En javascript
- sous menu caché avec du javascript: https://www.coinduwebmaster.com/sous-menus-caches/60/
- - En javascript
Jointures
- Très explicite avec exemples et images : [2]
- Avec plus de détails : [3]
- https://sqlpro.developpez.com/cours/sqlaz/jointures/
- Un bon exemple discussion et résolution: https://forum.phpfrance.com/php-debutant/problemes-jointures-php-sql-t270521-15.html
Manipulation via PHP
- Importer - exporter via mysql : https://docs.phpmyadmin.net/fr/latest/import_export.html
- Editer - Ajouter - détruire données : Live Table Add Edit Delete using Ajax Jquery in PHP Mysql [4]
Mysql - csv
Une astuce utiliser des fois le convertisseur pour importer les sql au lieu des csv quand l'importation cause des problèmes (surtout dans le cas de clés étrangères) http://www.convertcsv.com/csv-to-sql.htm