Skip to main content

Modèle de données

THE HIVE s’appuie sur PostgreSQL 16. Les entités centrales sont User, Candidat, Recruteur, Entreprise, Offre, Candidature, Vivier, AlerteEmploi, Article (blog).

Diagramme global (ER)

Grandes familles

Cardinalités clefs

Entité ARelationEntité BCardinalité
EntreprisepublieOffre1 → N
EntrepriseemploieRecruteur1 → N
RecruteurposteOffre1 → N
OffrereçoitCandidature1 → N
CandidatpostuleCandidature1 → N
CandidatuploadCV1 → N (historique)
CandidatureattacheCVN → 1
RecruteurcréeVivier1 → N
ViviercontientCandidatN ↔ N (via VivierCandidat)
Candidats’abonneAlerteEmploi1 → N
RégioncontientVille1 → N

Contraintes d’intégrité

Tables techniques

TableRôle
refresh_tokensRotation refresh JWT
offres_status_historyAudit transitions d’état offre
recruiter_status_historyAudit transitions recruteur
candidature_eventsTimeline candidature (statuts, messages)
files_metadataMétadonnées fichiers R2
email_queueFile d’attente envois batch
audit_logActions admins sensibles

Indexes critiques

IndexCibleType
idx_offres_search_vectoroffres.search_vectorGIN
idx_offres_status_puboffres(status, published_at DESC)BTREE composite
idx_candidatures_offrecandidatures(offre_id, status)BTREE composite
idx_users_emailusers.emailBTREE unique
idx_entreprises_rccmentreprises.rccmBTREE unique
idx_offres_titre_trgmoffres.titreGIN trigram (autocomplete)

Versioning du schéma

Les migrations suivent le format Flyway V{YYYYMMDDHHMMSS}__{NNN}_{description}.sql. Dernière migration : 023 (_023_fulltext_search_vector.sql).