Crans
  • Commentaires
  • Page immuable
  • Menu
    • Affichage
    • Carte locale du site
    • Pièces jointes
    • Informations
    • Code source
  • Connexion

Navigation

  • Modifications récentes
  • Recherche avancée
  • Aide
Version 1 à la date du 2013-02-11 02:30:41
CransWiki:
  • NoteKfet
  • NoteKfet2015
  • BaseDeDonnées

Base de données SQL de la NoteKFet2015

Cette page explique comment est organisée la base de bonnées de la NoteKfet2015. Si ce n'est pas ce que vous cherchiez, allez demander votre chemin ici.


Sommaire

  1. Base de données SQL de la NoteKFet2015
  2. Structure de la base de données
    1. Comptes
      1. Table comptes
      2. Table préinscriptions
      3. Table adhesions
      4. Table aliases
      5. Table historique
    2. Transactions
      1. Table boutons
      2. Table transactions
      3. Table cheques
      4. Table virements
    3. Activités
      1. Table activites
      2. Table invites
    4. Log
      1. Table log
  3. Configuration
    1. Table configurations
  4. Intégrité
  5. Variables de configuration

Structure de la base de données

Le champ effectif dans la base est spécifié entre crochets (avec éventuellement des précisions)

Comptes

Table comptes

Informations sur les adhérents/clubs.

  • Identifiant BDE (numéro de carte) [idbde PRIMARY KEY]

  • Type (personne, club, login spécial) [type \in {"personne","club","special"}]

  • Nom de note [pseudo UNIQUE]

  • Mot de passe (hashé en md5) [passwd]

    • NB : vaut "*" pour les comptes qui ne peuvent pas se connecter (comme Bde)
  • Solde ( /!\ Les soldes sont stockés en centimes !) [solde]

  • Nom [nom]

  • Prénom [prenom]

  • Numéro de téléphone [tel]

  • Adresse mail [mail]

  • Adresse IRL [adresse]

  • Sexe [sexe]

  • Fonction au sein du bde [fonction]

  • Normalien ou non [normalien]

  • Problème de santé [pbsante]

  • Numéro de sécurité sociale [numsecu]

  • aid ou cid (selon que type='club' ou 'personne') [idcrans] (-1 s'il en a pas (c'est aussi la valeur par défaut))

  • Droits (comma-separated) [droits] → voir l'API pour la liste des droits

  • Surdroits (comma-separated) : surdroit i => je peux donner/enlever le droit i [surdroits]

  • Droit supreme : permet de donner/retirer les surdroits [supreme]

  • Périodicité des rapports mail (en minutes) [report_period DEFAULT -1] (-1=pas de rapports, 0=rapports instantanés (dès qu'il se passe un truc))

  • Date du dernier rapport (pour savoir ce qu'il faut mettre dans le rapport) [previous_report_date]

  • Date du prochain rapport [next_report_date]

  • Bloqué ou non (note inutilisable) [bloque]

  • Id de la dernière adhésion [last_adhesion]

  • Un commentaire quelconque [commentaire]

Les adhérents qui ne veulent pas de rapport (period=-1) ont "01/01/2042 00:13:37" dans next_report_date

Table préinscriptions

Informations nécessaires à une inscription, qui doit ensuite être validée pour être effective.

  • Identifiant de préinscription (id temporaire) [preid PRIMARY KEY]

  • Type [type] (cf comptes)

  • Nom [nom]

  • Prénom [prenom]

  • Numéro de téléphone [tel]

  • Adresse mail [mail]

  • Adresse IRL [adresse]

  • Sexe [sexe]

  • Normalien [normalien]

  • Problème de santé [pbsante]

  • Numéro des sécurité sociale [numsecu]

  • aid/cid [idcrans]

  • Section [section]

Table adhesions

Une entrée pour chaque adhérent chaque année, si il a adhéré.

NB: la section de l'adhérent est dans cette table, puisqu'elle change (potentiellement) tous les ans.

  • Identifiant de l'adhésion [id PRIMARY KEY]

  • Identifiant BDE [idbde]

  • Année d'adhésion [annee]

  • Vient au WEI ou non [wei]

  • Identifiant de la transaction de paiement de cette adhésion [idtransaction]

  • Date d'adhésion [date]

  • Section [section]

Table aliases

Les correspondances entre les alias et les comptes.

  • Identifiant de l'alias [id PRIMARY KEY]

  • Identifiant BDE du compte correspondant [idbde]

  • Valeur de l'alias [alias]

Table historique

Les anciens pseudos des comptes.

  • Identifiant de l'ancien pseudo [id PRIMARY KEY]

  • Identifiant BDE du compte correspondant [idbde]

  • Pseudo qu'il avait avant [avant]

  • Nouveau pseudo [apres]

  • Timestamp du changement [date]

  • Est-ce que le pseudo avant est toujours une référence vers le compte en question ? [valide]

Transactions

Table boutons

La liste des consos qu'on peut débiter.

  • Identifiant du bouton [id PRIMARY KEY]

  • Montant de la conso [montant] ( /!\ les montants sont stockés en centimes !)

  • Nom de la conso [label]

  • Catégorie de la conso [categorie]

  • Identifiant du bénéficiaire de la transaction [destinataire]

  • Ce bouton doit-il être affiché [affiche DEFAULT true]

Table transactions

Une entrée pour chaque mouvement d'argent.

  • Identifiant de la transaction [id PRIMARY KEY]

  • Date de la transaction [date DEFAULT clock_timestamp()]

  • Type de la transaction [type \in {"transfert", "bouton", "don", "crédit", "retrait"}]

  • Identifiant de l'émetteur (celui qui paye) [emetteur]

  • Identifiant du destinataire (celui qui reçoit) [emetteur]

  • Quantité [quantite DEFAULT 1]

  • Montant unitaire [montant DEFAULT 0] ( /!\ les montants sont stockés en centimes !)

  • Description (coca, pinte, transfert d'argent (prima), …) [description]

  • Transaction valide ou non [valide]

  • Si cette transaction ne peut pas être dévalidée [cantinvalidate]

Table cheques

Une entrée pour chaque chèque fait au BDE (pour les crédits) ou émis par le BDE (pour les retraits).

  • Identifiant [id PRIMARY KEY]

  • Date de la transaction [date DEFAULT now()]

  • Nom de l'émetteur du chèque (NB : peut être différent de celui du compte crédité/retiré) [nom]

  • Prénom de l'émetteur du chèque [prenom]

  • Banque émettrice du chèque [banque]

  • Montant du chèque [montant] ( /!\ les montants sont stockés en centimes !)

  • Identifiant de la transaction correspondante (qui sera un crédit ou un retrait) [idtransaction]

  • Si c'est un retrait [retrait]

  • Si ça a été vérifié par le trésorier [checked]

  • Si il a été supprimé [deleted] (comme ça on ne supprime jamais vraiment un chèque)

Table virements

Une entrée pour chaque virement fait au BDE (pour les crédits) ou émis par le BDE (pour les retraits).

Identique à cheques.

Activités

Table activites

La liste des activités futures ou passées.

  • Identifiant de l'activité [id PRIMARY KEY]

  • Date de début [debut]

  • Date de fin (doit être supérieur à la date de début) [fin]

  • Nom de l'activité [titre]

  • Lieu où elle aura/a eu lieu [lieu]

  • Description de l'activité [description]

  • Identifiant du créateur de l'activité [responsable]

  • Organisateur(s) de l'activité [signature]

  • Identifiant de celui qui a validé l'activité [validepar DEFAULT -100]

  • Présence d'une liste d'invités [liste]

  • Si la liste a été imprimée [listeimprimee]

Table invites

Une entrée par invité par activité.

  • Identifiant de l'invité [id PRIMARY KEY]

  • Nom de l'invité [nom]

  • Prénom de l'invité [prenom]

  • Identifiant de l'adhérent qui l'a invité [responsable]

  • Identifiant de l'activité à laquelle l'invité est invité [idact

Log

Table log

Enregistrement de ce qui se passe.

Des entrées sont ajoutées à cette table seulement quand une modification est faite.

  • Identifiant de l'évènement [id PRIMARY KEY]

  • Date de l'évènement [date DEFAULT now()]

  • IP du client qui a effectué la modification [ip (varchar)]

  • Utilisateur ayant effectué la modification [utilisateur]

  • La fonction qui a été appelée [fonction]

  • Ses éventuels paramètres [params DEFAULT '']

    • contient tel quel les paramètres passés à la commande, sauf pour une transaction, où on a "<idbde> (ne) consomme (pas) <quantite>*<description> (idbouton = <idbouton>) ([(over)forced used/needed])"

Configuration

Table configurations

Une ligne pour chaque set de valeurs de configuration. Dont un et un seul utilisé.

Cf plus bas

Intégrité

Comment maintenir la base cohérente.

La doc sur la cohérence sur le serveur

Un script/cron pourra lancer les vérifications à intervalle régulier.

Variables de configuration

Voici la liste des variables de configuration du serveur, leur signification et leur valeur dans la configuration par défaut. (On rappelle que les prix sont en centimes.)

On parle ici des variables qui sont stockées dans la table configurations de la base de données et qui sont susceptibles d'être modifiées on the fly (genre le prix du WEI, …)

La table contient également un champ id (PRIMARY KEY) et un champ nom pour référencer le set de paramètres ainsi qu'un champ used pour dire si c'est la configuration actuellement utilisée.

Nom du champ

Valeur par défaut

Signification

prix_wei_normalien

15000

prix de l'inscription incluant le WEI

prix_wei_non_normalien

13500

idem, pour les non-normaliens

prix_adhesion

4000

prix de l'adhésion sans WEI

solde_negatif

0

solde en dessous duquel on est en négatif (invitations et don bloqués, ...)

solde_tres_negatif

-4000

solde en dessous duquel le droit forced est nécessaire

solde_pas_plus_negatif

-20000

solde en dessous duquel le droit overforced est nécessaire

start_next_year_month

04

mois de la date à partir de laquelle une adhésion vaut pour l'année suivante

start_next_year_day

30

idem, mais le jour

end_previous_year_month

11

mois de la date après laquelle un compte n'est plus utilisable sans réadhésion

end_previous_year_day

30

idem, mais le jour

year_boot_month

09

mois du début de l'année scolaire

year_boot_day

01

idem, mais le jour

historique_pseudo_timeout

365

Durée (en jours) avant qu'un ancien pseudo ne référence plus l'adhérent

historique_incompressible

24

Durée (en heures) pendant laquelle on ne peut pas prendre l'ancien pseudo de quelqu'un

listes_invites_opening_time

168

Durée (en heures) à partir de laquelle une liste est ouverte (avant l'activité, si elle est avec liste)

listes_invites_closing_time

5

Durée (en heures) à partir de laquelle une liste est fermée (avant l'activité, si elle est avec liste)

max_invitation_par_personne

3

Nombre maximum de personnes qu'un adhérent peut inviter à un pot

max_invitation_par_an

5

Nombre maximum de fois où une personne peut être invitée à un pot (par an)

toggle_transaction_timeout

604800

Durée (en secondes) au bout de laquelle une transaction ne peut plus être validée/dévalidée dans être admin (=une semaine)

  • Propulsé par MoinMoin
  • Mentions légales