source: spip-zone/_core_/plugins/forum/README.md @ 80927

Last change on this file since 80927 was 80927, checked in by severo@…, 6 years ago

forum - qques explications sur le modèle de données

pour stocker les messages de forums en threads.

File size: 3.2 KB
Line 
1# README
2
3Quelques notes de documentation.
4
5## Modèle de données
6
7Pour expliquer la façon dont le plugin __forum__ stocke les messages de forums, prenons la conversation suivante :
8
9 * à 12:53, envoi du message `msg A`
10 * à 13:44, envoi du message `msg B`
11 * à 14:27, envoi d'une réponse au premier message : `[Re] msg A`
12 * à 18:12, envoi d'une réponse à cette réponse : `[Re] [Re] msg A`
13
14### Table `spip_forum` dans la base de données
15
16Les données sont stockées dans la table `spip_forum`, avec un message par ligne. La conversation donnera donc la table suivante (on ne montre que les champs principaux) :
17
18| `id_forum` | `id_parent` | `id_thread` | `date_heure` | `date_thread` | `texte`           |
19| ---------- | ----------- | ----------- | ------------ | ------------- | -------           |
20| 1          | 0           | 1           | 12:53        | 18:12         | msg A             |
21| 2          | 0           | 2           | 13:44        | 13:44         | msg B             |
22| 3          | 1           | 1           | 14:27        | 18:12         | [Re] msg A        |
23| 4          | 3           | 1           | 18:12        | 18:12         | [Re] [Re] msg A   |
24
25Détaillons un peu le rôle de chaque champ :
26
27| champ         | description                                                                       |
28| -----         | -----------                                                                       |
29| `id_forum`    | identifiant du message                                                            |
30| `id_parent`   | identifiant du message parent pour les réponses, ou 0 si c'est le premier message |
31| `id_thread`   | identifiant du premier message d'un thread                                        |
32| `date_heure`  | heure du message (format un peu simplifié pour faire court)                       |
33| `date_thread` | heure du dernier message du thread                                                |
34
35A noter également les deux champs `id_objet` et `objet` qui indiquent l'objet auquel le message est attaché (ex: `id_objet = 3` et `objet = article` pour un message de forum dans l'article numéro 3).
36
37### Relations entre `id_forum`, `id_parent` et `id_thread`
38
39```
40  msg A
41  id_forum = 1            <---------+
42  id_parent = 0                     |
43  id_thread = 1            ---------+
44                                    |
45    [Re] msg A                      |
46    id_forum = 3          <----+    |
47    id_parent = 1          ----|----+
48    id_thread = 1          ----|----+
49                               |    |
50      [Re] [Re] msg A          |    |
51      id_forum = 4             |    |
52      id_parent = 3        ----+    |
53      id_thread = 1        ---------+
54
55  msg B
56  id_forum = 2            <----+
57  id_parent = 0                |
58  id_thread = 2            ----+
59```
60
61### Relations entre `date_heure` et `date_thread` :
62
63```
64  msg A
65  date_heure = 12:53
66  date_thread = 18:12      ----+
67                               |
68    [Re] msg A                 |
69    date_heure = 12:53         |
70    date_thread = 18:12    ----+
71                               |
72      [Re] [Re] msg A          |
73      date_heure = 18:12  <----+
74      date_thread = 18:12  ----+
75
76  msg B
77  date_heure = 13:44      <----+
78  date_thread = 13:44      ----+
79```
Note: See TracBrowser for help on using the repository browser.