Schéma relationnel de la base de donnée - ColinMaudry/decp-processing GitHub Wiki
Actuellement - 2025-04-11 - #35 Normalisation tables
Lien vers le schéma sous dbdiagram : https://dbdiagram.io/d/Diagram-avancement-67f8b8214f7afba1843461cb
// Schéma pour les marchés publics français
// Utilisation de DBML : https://dbml.dbdiagram.io/docs
// marchés publics - titulaires : N x N
// marchés publics - acheteurs : N x 1
// marchés publics - sous-traitants : N x 1
// marchés publics - acte_sous_traitant : 1 x N
Table marches_publics {
uid text [pk]
id text
nature text
acheteur_id text [not null] // Clé étrangère vers l'acheteur
objet text
montant float
codeCPV text
procedure text
dureeMois bigint
dateNotification date
datePublicationDonnees date
formePrix text
attributionAvance text
offresRecues bigint
marcheInnovant text
ccag text
sousTraitanceDeclaree text
typeGroupementOperateurs text
tauxAvance float
origineUE text
origineFrance text
lieuExecution_code text
lieuExecution_typeCode text
idAccordCadre text
}
Table acheteurs {
id text [pk]
// D'autres attributs (nom, adresse, etc.) pourront être ajoutés
}
Ref marche_acheteurs: marches_publics.acheteur_id > acheteurs.id
Table entreprise {
id text [pk] // idSousTraitant, titulaire_id
typeIdentifiant text
// Autres informations sur le titulaire si nécessaire
}
Table marche_titulaires {
uid_marche text [not null]
titulaire_id integer [not null]
typeIdentifiant text
}
Ref marche_titulaires_marches: marche_titulaires.uid_marche > marches_publics.uid
Ref marche_titulaires_titulaires: marche_titulaires.titulaire_id > entreprise.id
Ref marche_titulaires_titulaires: marche_titulaires.typeIdentifiant > entreprise.typeIdentifiant
Objectif
Lien vers le schéma sous dbdiagram : https://dbdiagram.io/d/DATALAB-V4-67f00d0c4f7afba18464f539
// Schéma pour les marchés publics français
// Utilisation de DBML : https://dbml.dbdiagram.io/docs
// marchés publics - titulaires : N x N --> Dans entreprise
// marchés publics - acheteurs : N x 1 --> Dans entreprise
// marchés publics - sous-traitants : N x N
// acte_sous_traitant : relie marchés public et sous-traitants (dans entreprises)
// marchés_titulaire : relie marchés public et titulaires (dans entreprises)
// Questions :
// Le sous traitant est lié au titulaire ?
// l'acte sous traitant doit etre lié au sous traitant ?
// Modification acte sous traitance est il lié à un acte de sous traitance ou à un marché? Peut il y en avoir plusieurs ?
// Modification acte marché est il lié à un marché ? Peut il y en avoir plusieurs ?
Table marches_publics {
uid text [pk]
id text
nonunique_id text // id
procedure text
nature text
codeCPV text
dureeMois bigint
formePrix text
objet text
montant float
lieuExecution_code text
lieuExecution_typeCode text
considerationsSociales text
considerationsEnvironnementales text
marcheInnovant text
ccag text
offresRecues bigint
attributionAvance text
typeGroupementOperateurs text
sousTraitanceDeclaree text
idAccordCadre text
techniques text
modalitesExecution text
tauxAvance float
origineUE text
origineFrance text
typesPrix text
typePrix text
idSousTraitant text
idActeSousTraitance text
source text
source_open_data text
// Clé étrangère vers l'acheteur
acheteur_id text [not null]
dateNotification date
datePublicationDonnees date
EstDernierePublication bool
}
Table acheteurs {
id text [pk]
// D'autres attributs (nom, adresse, etc.) pourront être ajoutés
}
Ref marche_acheteurs: marches_publics.acheteur_id > acheteurs.id
Table entreprise {
id text [pk] // idSousTraitant, titulaire_id
typeIdentifiant text
typeActeur text // titulaire, sous-traitant
// Autres informations sur le titulaire si nécessaire
}
Table marche_titulaires {
uid text [pk]
id text
id_marche text [not null]
titulaire_id integer [not null]
ordre integer // Pour indiquer le rang (titulaire 1, 2, 3, etc.)
dateNotification date
datePublicationDonnees date
EstDernierePublication bool
}
Ref marche_titulaires_marches: marche_titulaires.id_marche > marches_publics.id
Ref marche_titulaires_titulaires: marche_titulaires.titulaire_id > entreprise.id
Table acte_sous_traitance {
uid text [pk]
id text // issu de idActeSousTraitance
marche_public_uid text [not null]
isSousTraitant text
dureeMois bigint
montant float
variationPrix float
dateNotification date
datePublicationDonnees date
EstDernierePublication bool
}
Ref acte_sous_traitance_marches: acte_sous_traitance.marche_public_uid > marches_publics.id
Ref acte_sous_traitance_sous_traitant: acte_sous_traitance.isSousTraitant > entreprise.id
// Table modifications_marche {
// id text [pk] // issu de idModification
// marche_public_uid text [not null]
// dureeMoisModification bigint
// datePublicationDonneesModification text
// montantModification float
// dateNotificationModification text
// }
// Ref modifications_marche_marches: modifications_marche.marche_public_uid > marches_publics.id_marche
// Table modifications_titulaire {
// id text [pk] // issu de idTitulaireModification
// marche_public_uid text [not null]
// typeIdentifiant text
// datePublicationDonneesModification text
// dateNotificationModification text
// }
// Ref modifications_titulaire_marches: modifications_titulaire.marche_public_uid > marches_publics.id_marche
// Table modifications_acte_sous_traitance {
// id text [pk] // issu de idModificationActeSousTraitance
// acte_sous_traitance_id text [not null]
// dureeMoisModification bigint // issu de dureeMoisModificationActeSousTraitance
// dateNotificationModification date // issu de dateNotificationModificationSousTraitanceModificationActeSousTraitance
// montantModification float // issu de montantModificationActeSousTraitance
// datePublicationDonneesModification date // issu de datePublicationDonneesModificationActeSousTraitance
// }
// Ref modifications_acte_sous_traitance_acte: modifications_acte_sous_traitance.acte_sous_traitance_id > acte_sous_traitance.id