Nile : Gestion d'un service de livraison en ligne

Recueil des besoins

Vous êtes chargés de réaliser la base de données de Nile, service de commande et de livraison en ligne. Nile dispose de plusieurs sites dans le monde, qui peuvent être soit des entrepôts, qui contiennent les objets à commander, soit des relais qui permettent de faire transiter les commandes lors de la livraison.

Les sites ont tous une adresse et un nom. Les entrepôts ont également une superficie utile : ils ne peuvent pas contenir plus de parcelles que cette superficie. Chaque entrepôt est lié à un relais : le relais le plus proche de l’entrepôt par lequel passent toutes les commandes partant de cet entrepôt. Chaque relais est lié à tous les relais atteignables à partir de ce relais : les commandes passent de relais en relais jusqu'à leur destination.

Le service propose à ses utilisateurs des produits : chaque produit à un nom, un type (livre, DVD, jeu de plateau, etc.), un prix et une description. Les entrepôts contiennent les supports physiques de différents produits, qui ont tous un identifiant. Un utilisateur a un login, un mot de passe, un numéro de téléphone et une adresse. Il peut passer une commande, qui lui associe les lots physiques des produits désirés avec une date de paiement et une date de livraison (nulle tant que le produit n'est pas livré), à son adresse ou à une adresse différente. Les supports physiques de la commande sont initialement issus des entrepôts les plus proches de la destination. L'entreprise Nile veut garder la trace du passage (date et heure d'arrivée et de départ) de chaque commande dans les différents relais jusqu'à la réception de la commande par l'utilisateur.

Hypothèses

  • Pour des raisons de simplification, on considérera que tous les supports physiques d'une commande proviennent du même entrepôt : la commande part de l’entrepôt le plus proche de la destination de la commande ayant tous les supports physiques.

  • Les calculs de distance entre adresses de destination et d’entrepôt ou adresse de destination et relais sont gérés par une autre application. L'information est fournie directement à la BDD. Au besoin, vous pourrez rentrer les informations en dur pour simuler cette fonctionnalité.

Fonctionnalités

L'application doit permettre :

  • Pour un client, de passer des commandes et suivre leur évolution au cours du temps (si elles sont arrivées, et sinon à quel relais ou entrepôt elles sont).

  • Pour un gestionnaire, de mettre à jour les produits des entrepôts et l'état d'avancement des commandes. Des requêtes informatives sur l'entreprise peuvent aussi être consultées.

Exemples de requêtes demandées sur la base de données

  • Quels sont les entrepôts ayant tous les supports physiques d'une commande ?

  • Quel sont toutes les commandes passées par un relais particulier ?

  • Quels relais ont vu passer le plus grand nombre de commandes ayant au moins un DVD ?