Skip to content

[BACKEND] Mise en place d'une dimension SCD pour les vessels #430

@rv2931

Description

@rv2931

Le but de cette évolution est de pouvoir suivre les modifications administratives d'un navire physique telles que:

  • changement de mmsi
  • changement de nom
  • changement de pays
  • changement de type de navire
  • changement de IRCS (= call sign)
  • changement d'external marking
    tout en permettant de l'identifier d'une manière unique et indépendante du point de vue "métier" et garder une certaine continuité dans son historique d'activité au délà de ces informations administrative

Le fonctionnement des dimensions SCD est décrit ici et est assez standard en stockage de données. Le type de type 6 (hybride) est le plus complet et le plus flexible et donc le plus utilisé.

Dans un premier temps, l'utilisation de l'identifiant IMO semble être une bonne option en tant qu'identifiant unique SCD renseigné par défaut au travers des différents versions de données du navire dans le temps, cependant il est à noter que l'identifiant unique pourrait être autre chose et peut être modifier par la suite dès lors qu'il est modifié pour toutes les versions historisées au sein de la table SCD pour un même navire/IMO

Cette migration version une dimension SCD pour les vessels aura un impact sur toutes les recherches et sauvegarde de récupération d'un id de vessel en table. En effet il faudra systématiquement accompagner la recherche d'un vessel par une date de validité effective afin de récupérer la bonne version du même vessel aux dates souhaitées. C'est particulièrement important lors du recalcul de statistiques afin que celle-ci soient valides sur la période en question

si possible, ça peut être une bonne occasion de créer une première surcouche de Service (design pattern Repository, UnitOfWork, Service + Dependency injection) pour simplifier la gestion des Vessels. Potentiellement d'autres suivront comme une éventuelle SCD pour la dimension des Zones

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions