Bonjour à tous.
Je suis débutant en conception de base de données. Cette application est même la 1ère que je développe, et là j'ai besoin d'aide.

Voici l'énoncé de ce que je voudrais :

Réservation de bureaux dans un cabinet de thérapeutes.
Dans le cabinet il y a plusieurs personnes qui peuvent avoir plusieurs rôles (praticien, secrétaire, gérant, formateur, commercial...). C’est personnes sont identifiées par leur nom, prénom, adresses complètes, emails et téléphones (personnel et professionnel).
L’application fonctionnant avec Wordpress, l’identifiant de cette personne sous Wordpress doit être renseigné pour pouvoir faire le lien.

Les bureaux sont gérés par certaines personnes dans le cabinet. Il est possible qu’ils soient gérés par plusieurs personnes. Il y a obligatoirement un gérant pour chaque bureau.
Chaque bureau a un identifiant Google Agenda.

Les tarifs de réservations des bureaux sont les même pour tous les bureaux, sauf pour une grande salle qui a un tarif spécial. Ils sont en fonction des plages horaires qui sont réservées (journée, demie-journée, heure...).
Ces plages horaires sont d’une heure de début à une heure de fin définies à l’avance (de 8h00 à 13h30 ou de 14h à 19h30 pour les demies-journées par exemple...) et dont le tarif est connu.
Elles peuvent aussi être d’une heure de début et de fin non définies à l’avance, le tarif sera donc calculé en fonction de la durée de la réservation.

Chaque personne peut faire une réservation d’une plage horaire pour un bureau précis pour un jour donné s’il est libre (il n’est pas possible de réserver sur plusieurs jours). Cette réservation doit être validée par le gérant du bureau avant de devenir effective (sinon elle est en attente de validation).
Une fois qu’une plage est demandée, même si elle est encore en attente de validation, il n’est pas possible pour une autre personne d’en faire la demande.

Lorsqu’une réservation est faite, la personne reçoit un email récapitulatif et le gérant un email de notification de demande.

Les réservations peuvent être réglées par divers moyens de paiement, quand la personne le souhaite. Elle peut payer une ou plusieurs réservations d’un coup et savoir ce qu’il lui reste à payer.

Chaque personne doit pouvoir voir ce qu’elle a réservé (passé et à venir) et avoir la possibilité d’annuler ses réservations suivant les règles d’annulation.
Suite à cet énoncé, voici le dictionnaire que j'ai défini :

Nom----------------------Format Longueur
idPersonne-------------- Numérique 3
rôles personne----------Alphanumérique 50
nom personne-----------Alphanumérique 50
prénom personne-------Alphanumérique 50
adresse------------------Alphanumérique 100
ville----------------------Alphanumérique 100
code postal--------------Alphanumérique 10
type adresse------------Alphanumérique 50
email--------------------Alphanumérique 50
type email---------------Alphanumérique 20
téléphone----------------Alphanumérique 20
type téléphone----------Alphanumérique 20
idWordpress-------------Numérique 3
idBureau-----------------Numérique 3
idBureauGcal------------Alphanumérique 50
nom bureau-------------Alphanumérique 50
description bureau------Alphanumérique 50
idTarif-------------------Numérique 3
nom tarif----------------Alphanumérique 50
prix tarif----------------Numérique 10
idPlageHoraire----------Numérique 3
nom plage horaire------Alphanumérique 50
heure début plage------Alphanumérique 50
heure fin plage---------Alphanumérique 50
idRéservation-----------Numérique 10
statut réservation------Alphanumérique 50
idMoyenPaiement-------Numérique 5
nom moyen paiement--Alphanumérique 50
idRèglement-------------Numérique 5
date règlement----------Alphanumérique 50
ligne règlement---------Alphanumérique 50
J'ai fait ce qui me semblait évident, mais j'ai le sentiment qu'il manque des choses.

Ensuite, pour les dépendances fonctionnelles, je ne suis pas sûr que ce soit bon. C'est surtout là que j'ai besoin d'aide, avant de passer au MCD (c'est la partie tarif, plage horaire et règlement qui me posent problème) :

idPersonne -> (nom personne, prénom personne, rôles personne, idWordpress)
(idPersonne, type adresse) -> (adresse, ville, code postal)
(idPersonne, type email) -> (email)
(idPersonne, type téléphone) -> (téléphone)
idBureau -> (idBureauGcal, nom bureau, description bureau)
idTarif -> (nom tarif, prix tarif)
idPlageHoraire -> (nom plage horaire, heure début plage, heure fin plage)
idRéservation -> statut réservation
idRéservation -> idPersonne
idRéservation -> idBureau
idRéservation -> idTarif
idRéservation -> idPlageHoraire
idRèglement -> (date règlement, ligne règlement)
Voilà où j'en suis. Je suis preneur de toutes vos remarques et conseils.

Eric