Cela fait un bon moment que je recherche cette façon de travailler.
Et elle est mise en oeuvre dans le script Aedituus (! doc vieille mais script actualisé en 07/2009).
En clair : 2 tables
ae_users :
organisation horizontale mais seulement 11 champs =>
id - pseudo - mdp - email.....
ae_user_vars
organisation verticale avec seulement 3 champs : user_id - name - value
exemple 1° enregistrement :
user_id = 1
name = age
value = 18
exemple 2° enregistrement :
user_id = 1
name = sexe
value = f
exemple 3° enregistrement :
user_id = 1
name = pays
value = fr
etc... avec encore une infinité de caractéristiques possibles pour le user_id = 1
ET une infinité de users : user_id = 2 ... user_id = 99999999
Autre info, les champs sont écrits en clair dans un fichiers fields.php
qui contient :
Le script étant trop structuré pour moi, j'aimerais savoir comment travailler dans cet esprit pour éviter de réaliser des tables démesurément horizontales avec tous les champs en dur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 return array( array( 'name' => array( 'fr' => 'Age', 'en' => 'Age' ), 'key' => 'age', 'type' => 'text', 'min_size' => 5, 'max_size' => 25, 'validator' => 'int', 'required' => true, 'default' => 18 ), array( 'name' => array( 'fr' => 'Sexe', 'en' => 'Sex' ), 'key' => 'sexe', 'type' => 'text', 'min_size' => 5, 'max_size' => 5, 'validator' => 'int', 'required' => false, 'default' => '' ),
Idem pour les inserts, updates et selects sur ce genre configuration.
Partager