Base de données¶
Tableau des Rubriques¶
| N° | Libellé | Exemple | Genre | Commentaire |
|---|---|---|---|---|
| 1 | Nom de l’application | Unrecon | Paramètre | |
| 2 | Logo de l’application | unrecon | Paramètre | |
| 3 | Prix de l’abonnement | 5 | Base | |
| 4 | Durée de l’abonnement | 1 | Base | en mois |
| 5 | Nombre de serveur de l’abonnement | 1 | Base | |
| 6 | Nombre de mot de l’abonnement | 50’000 | Base | par mois |
| 7 | Code promo | PROMO2025 | Base | |
| 8 | Date de début de la promo | 30/10/2025 | Base | |
| 9 | Date de fin de la promo | 31/12/2026 | Base | |
| 10 | Réduction de la promo | 10 | Base | en pourcentage |
| 11 | Identifiant discord de l’utilisateur pour le paiement | 759243 | Base | |
| 12 | Identifiant stripe du paiement | 243975 | Base | |
| 13 | Prix payé du paiement | 4.5 | Calculable | prix de l’abonnement – la réduction de la promo |
| 14 | Date de début du groupe | 30/10/2025 | Base | |
| 15 | Date de fin du groupe | 30/11/2025 | Base | |
| 16 | Identifiant discord de l’utilisateur pour le groupe | 759243 | Base | |
| 17 | Identifiant stripe pour le groupe | 243975 | Base | |
| 18 | Identifiant discord de l’utilisateur sur liste noir | 9823459 | Base | |
| 19 | Identifiant discord de l’administrateur | 1982349 | Base | |
| 20 | Identifiant discord du serveur | 172379 | Base | |
| 21 | Date et heure de l’ajout sur liste noir | 30/10/2025 12H00 | Base | |
| 22 | Raison de l’ajout sur liste noir | Propos haineux | Base | |
| 23 | Identifiant du serveur | 172379 | Base | |
| 24 | configuration du serveur | [“blacklist”:true, “whitelist”:true] | Base | |
| 25 | Identifiant discord de l’utilisateur sur liste blanche | 3849823498 | Base | |
| 26 | Identifiant discord de l’administrateur | 1982349 | Base | |
| 27 | Date et heure de l’ajout sur liste blanche | 30/10/2025 12H00 | Base | |
| 28 | Nom de la catégorie | Discussion | Base | |
| 29 | Identifiant discord du salon | 2983498 | Base | |
| 30 | langue du salon | FR | Base | |
| 31 | catégorie du salon | Discussion | Base | |
| 32 | nombre de caractère du message | 234 | Base | |
| 33 | date et heure du message | 30/10/2025 12H01 | Base | |
| 34 | langue d’origine du message | FR | Base | |
| 35 | Identifiant discord de l’utilisateur du message | 3849823498 | Base |
Modèle Conceptuel de Données¶
J'ai choisi de séparé la table Blacklists et la table Whitelists pour 2 raisons. La première étant que si un utilisateur est ajouté sur la blacklist, il est obligatoirement de tous les serveurs du groupe, vu que cette fonction est fait pour ça. Alors qu'un utilisateur whitelist ne concerne pas forcément le groupe. La deuxième est dans le cas d'une évolution future, les 2 peuvent être amené à évoluer différement en fonction des besoins.
La table Messages est relié à Servers, Categories et Channels. Ce choix a été fait pour s'implifié les transactions avec la base de données et le tri en fonction des différents éléments pour un futur affichage graphique.
Modèle Logique de Données¶
Subscriptions(id, basedPrice, duration, maxServers, maxWords)
Promotions(id, code, reduction, startDate, endDate)
Groups(id, ownerId, stripeId, startDate, endDate, #subscriptionId)
Payments(stripeId, date, paidPrice, #subscriptionId, #promotionId, #groupId)
Authorizations(userId, #groupId)
Servers(id, configuration, #groupId)
Blacklists(id, userId, adminId, date, reason, #groupId, #serverId)
Whitelists(id, userId, adminId, date, #groupId, #serverId)
Categories(id, name)
Channels(id, language)
Messages(id, length, date, userId, #groupId, #serverId, #categoryId, #channelId)
En gras, les tables
en italique, les clés primaires
et avec un #, les clés étrangères
Dictionnaire de Données¶
| Tables | Colonne | Type | Taille | PK | FK | AI | UN | NU | Valeur par défaut |
|---|---|---|---|---|---|---|---|---|---|
| Subscriptions | id | int | 11 | X | X | ||||
| Subscriptions | basedPrice | float | 10 | ||||||
| Subscriptions | duration | int | 3 | 1 | |||||
| Subscriptions | maxServers | int | 3 | 1 | |||||
| Subscriptions | maxWords | int | 15 | 1000 | |||||
| Promotions | id | int | 11 | X | X | ||||
| Promotions | code | varchar | 20 | X | |||||
| Promotions | reduction | int | 3 | 0 | |||||
| Promotions | startDate | date | X | ||||||
| Promotions | endDate | date | X | ||||||
| Groups | id | int | 11 | X | X | ||||
| Groups | ownerId | varchar | 25 | ||||||
| Groups | stripeId | varchar | 25 | ||||||
| Groups | startDate | date | X | now() | |||||
| Groups | endDate | date | X | ||||||
| Groups | subscriptionId | int | 11 | X | |||||
| Payments | stripeId | varchar | 25 | X | |||||
| Payments | date | datetime | X | ||||||
| Payments | paidPrice | float | 10 | ||||||
| Payments | subscriptionId | int | 11 | X | |||||
| Payments | promotionId | int | 11 | X | X | ||||
| Payments | groupId | int | 11 | X | |||||
| Authorizations | userId | varchar | 25 | X | |||||
| Authorizations | groupId | int | 11 | X | X | ||||
| Servers | id | varchar | 25 | X | |||||
| Servers | configuration | json | X | ||||||
| Servers | groupId | int | 11 | X | |||||
| Blacklists | id | int | 11 | X | X | ||||
| Blacklists | userId | varchar | 25 | ||||||
| Blacklists | adminId | varchar | 25 | ||||||
| Blacklists | date | datetime | X | ||||||
| Blacklists | reason | varchar | 1000 | X | |||||
| Blacklists | groupId | int | 11 | X | |||||
| Blacklists | serverId | int | 11 | X | |||||
| Whitelists | id | int | 11 | X | X | ||||
| Whitelists | userId | varchar | 25 | ||||||
| Whitelists | adminId | varchar | 25 | ||||||
| Whitelists | date | datetime | X | ||||||
| Whitelists | groupId | int | 11 | X | X | ||||
| Whitelists | serverId | int | 11 | X | |||||
| Categories | id | int | 11 | X | X | ||||
| Categories | name | varchar | 50 | ||||||
| Categories | serverId | varchar | 25 | X | |||||
| Channels | id | varchar | 25 | X | |||||
| Channels | language | varchar | 5 | ||||||
| Channels | categoryId | int | 11 | X | |||||
| Messages | id | int | 11 | ||||||
| Messages | length | int | 5 | ||||||
| Messages | date | datetime | X | ||||||
| Messages | userId | varchar | 25 | ||||||
| Messages | groupId | int | 11 | X | |||||
| Messages | serverId | varchar | 25 | X | X | ||||
| Messages | categoryId | int | 11 | X | X | ||||
| Messages | channelId | varchar | 25 | X | X |
Ici, tous les ID de type int(11) sont générés par l'application, tandis que tous les ID de type int(20) sont générés par d'autres applications et doivent être stockés.
Modèle Physique de données¶