Bonjour,

Je suis entrain de concevoir un projet à l'aide de Laravel 8.
J'aborde un nouvel aspect puisque mes utilisateurs quand ils créeront un compte devront donner l'adresse d'un établissement. Cela ne touche que la france mais je voudrais collecter:

  • La région
  • Le département
  • La ville
  • La rue et le numéro
    J'en suis à l'étape de conception de la base de donnée. J'avais donc l'idée de relier les tables entre elles avec:
  • Table région
  • Table département
  • Table ville
  • La rue je la stock dans le table des infos de l'établissement.
    Le problème étant que les villes changent (nom, nouvelles villes) et que je voudrais conserver cela à jour.
    Pour celles et ceux qui ont déjà eu affaire a cela, j'aimerai savoir déjà, votre organisation en terme de BDD et ensuite comment mettre à jour cela dans le temps.

Merci.

4 réponses


Bonjour,

Je n'habite pas en France mais, comme dans mon pays, il existe surement une API externe que tu peux consommer afin de mettre les données de ta DB à jour.

Pour ce qui est du stockage des infos utilsateurs. J'aurais mapper une entité "Address" en OneToMany sur l'entité User.. Un utilisateur pourra ainsi avoir plusiseurs adresses.
Dans l'entité Address, j'aurais les propriétés Id, Street, Number, PostalCode, Locality, Region et Department.

Pour les propriétés PostalCode, Department, Region et Locality. Je ferais une relation OneToMany vers tes tables "dictionnary" du même nom, afin de respecter la forme 3NF.

Tes tables dictionnaires, tu pourra toujours les alimenter avec un script qui tournerai toutes les nuits par exemple (un cron).

Je te met ici, ce que j'ai trouvé :
https://www.data.gouv.fr/fr/datasets/api-codes-postaux/#_

Tu peux récupérer les données en CSV et SQL... Ca devrait faire l'affaire je pense

Bonjour voici une organisation simple je peux te proposer
region(#id,nom_region,...)
departement(id_region, #id_departement, nom_departement,..)
ville(id_departement, id_ville,nom_ville)
rue(id_ville, id_rue,numero, nom_rue, lat, long)

Bonsoir.
Tu peux par exemple utiliser l'API Geo, également nommée API Découpage Administratif.
Elle permet de récupérer/rechercher les régions, départements et communes de France, avec les données mises à jour lors de changements.
Tu pourras donc par exemple faire une tâche CRON qui pourra s'effectuer de temps en temps à l'API pour vérifier s'il y a des changements et les reporter sur ta base de données lorsque c'est le cas.
Pour les adresses, comme les rues et compagnies, tu as l'API Adresse, auprès de laquelle tu pourra proposer de l'auto-complétion pour la saisie des adresses.
Par contre, ton sujet n'a clairement aucun rapport avec le framework.