IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

Structure bdd facturation


Sujet :

Modélisation

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Structure bdd facturation
    Bonjour,

    après avoir chercher à gauche à droite, lu quelques tutoriels, je me lance dans la création d'une base de donnée pour la facturation de ma mère.

    Elle travail en indépendante en tant que psychologue.

    Le but de la bdd est assez simple.

    Il y a aura une liste de
    • Patients
    • Médecins
    • Assurances
    • Factures


    J'ai déjà une idée de comment gérer tout ça mais avant de me lancer et de devoir revenir en arrière pour corriger par ci par là, j'aimerais crée une base propre.

    Je vous donne donc la structure de bdd que j'ai imaginé:
    Table: T_Patient
    Champs:
    ID_Patient (clé auto)
    Titre
    Nom
    Prénom
    Adresse
    Localité
    Code postal
    TelFixe
    Natel
    Réf_Assurance
    Numéro d'assuré
    Réf_médecin
    Date de naissance

    Table: T_medecin
    Champs:
    ID_Médecin (clé auto)
    Nom
    Prénom
    Adresse
    Localité
    Code Postal
    Tel

    Table: T_Assurance
    Champs:
    ID_Assurance (clé auto)
    Nom
    Adresse
    Localité
    Code Postal
    Tel


    Table: T_Factures
    champs:
    ID_Facture (clé auto)
    Réf_Patient
    Date de facturation
    Payé (bool)

    Table: T_Facture_detail
    Champs
    ID_Facture
    Période début
    Période fin
    ID client
    Accident (type de consultation, bool)
    Maladie (type de consultation, bool)
    Invalidité (type de consultation, bool)
    Prévention (type de consultation, bool)
    Grosesse (type de consultation, bool)
    Traitement en cours (bool)
    Traitement terminé (bool)

    Le bloc ci-dessous est répétés 6 fois pour les différentes séances incorporé dans une seule facture
    --------
    Date1
    prest1
    durée1a
    durée1b
    durée1c
    --------
    Prix

    Voilà.

    Ma question est la suivante, est-ce qu'il y a des erreurs flagrantes dans cette structure?

    Merci d'avance pour votre aide.

  2. #2
    Membre habitué Avatar de amerex
    Homme Profil pro
    Analyste Support et Développement
    Inscrit en
    Septembre 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste Support et Développement
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 246
    Points : 148
    Points
    148
    Par défaut
    Salut!
    Personnellement, je pense que c'est correct, en prenant en considération le type d'usage prévu.

    Mais tant qu'à y être, pourquoi ne pas ouvrir plus l'application? Suivi des rencontres, prise de rendez-vous....
    Amerex
    «La chance sourit aux audacieux»
    Ms Access, Ms Excel, Ms FrontPage, Expression Web, Crystal, UniVerse, Basic, SQL, PHP, VBA...

    N'oubliez pas de noter les messages!

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 866
    Points
    56 866
    Billets dans le blog
    40
    Par défaut
    Bonsoir,

    Le bloc ci-dessous est répété 6 fois pour les différentes séances incorporé dans une seule facture
    Mmmh ! Dans la même table ou dans 6 tables différentes ?
    Dans les deux cas, je pense que le mieux est quand même de mettre en œuvre une table T_Seance :
    T_Seance(ID_Seance, DateSeance, PrestationSeance, Durée, …, PrixSeance,…)
    avec une ligne créée par séance. Table à raccorder à la partie facturation.

    Traitement en cours (bool),
    Traitement terminé (bool)
    Je suppose que si le traitement est terminé, alors il n’est plus en cours et vice versa. Un des deux champs est redondant et peut être supprimé…

    Accident (type de consultation, bool),
    Maladie (type de consultation, bool),
    Invalidité (type de consultation, bool),
    Prévention (type de consultation, bool),
    Grossesse (type de consultation, bool)
    Là encore, pourquoi pas une table supplémentaire:
    T_TypeConsultation(ID_TypeConsultation, LibelleTypeConsultation)
    à raccorder également à la partie facturation ou aux séances selon.

    A suivre…

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Tout d'abord merci pour vos réponses rapides

    @ Amerex:
    ça serait clairement l'idéal. Ma mère n'aura qu'à entrer quel séances elle veut facturer sur une facture et je pourrais avoir un suivi plus précis et totalement intégrer.
    Seul souci, je voyais mal comment créer déjà la simple bdd de facturation, alors rajouter une gestion de rendez-vous , tu penses bien que l'idée me fais un peu peur.

    @ f-leb:

    pour ce qui est des 6 blocs, c'est dans la table :T_Facture_Detail.
    La raison pour laquelle c'est implémenté de cette manière c'est que je ne savais pas comment intégrer une facturation des séances "dynamique".

    Je m'explique. Admettons que ce mois ci, ma mère facture 2 séances et le mois suivant 3, il faut faire apparaître ces champs dans le formulaire ainsi que dans la table. Et je ne sais même pas si depuis un formulaire je peux créer des champs dans la table détail facture.

    Aujourd'hui elle travail avec un fichier excel (une mini bdd) avec une feuille qui possède la liste des patients et une feuille qui lui permet de remplir les champs (prénom/nom, etc) de manière automatique avec un menu déroulant ^^ (c'est fou ce que excel peut nous offrir).

    Le souci avec la situation actuelle, c'est le suivi des factures. C'est un grand boardel et y a probablement des factures qui manque, pas payés ou perdues... bref...

    La bdd sous access doit résoudre ce souci.

    Je vais finir les relations au plus vite et les posterai ici.

    Là encore, pourquoi pas une table supplémentaire:
    T_TypeConsultation(ID_TypeConsultation, LibelleTypeConsultation)
    à raccorder également à la partie facturation ou aux séances selon.
    C'est une très bonne idée, ça me simplifiera un peu le travail.

    Patrick

    PS: Y a t'il moyen de partager cette bdd sur ce site une fois terminée? J'ai cherché un peu partout une bdd qui ferait qqch de semblable à télécharger gratuitement mais mes recherches furent infructueuses :/

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 866
    Points
    56 866
    Billets dans le blog
    40
    Par défaut
    Bonsoir,

    Citation Envoyé par yochi_p
    Admettons que ce mois ci, ma mère facture 2 séances et le mois suivant 3, il faut faire apparaître ces champs dans le formulaire ainsi que dans la table. Et je ne sais même pas si depuis un formulaire je peux créer des champs dans la table détail facture.
    D’où l’intérêt de mettre ces données en ligne (1 ligne=1 séance)
    T_Seance(ID_Seance, DateSeance, PrestationSeance, Durée, …, PrixSeance, #ID_Facture)
    T_Facture-1---------∞-T_Seance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    T_Seance :
    ID_Seance	DateSeance	…	Duree		PrixSeance	ID_Facture
    1		01/06/2010	…	1h		40		F0001
    2		08/06/2010	…	1h30		50		F0001
    3		02/06/2010	…	1h		41		F0002
    4		05/06/2010	…	1h		35		F0002
    Etc…
    Combien de séances pour la facture F0001 :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Count(ID_Seance) FROM T_Seance WHERE ID_Facture=’F0001’

    Total facturé en séances au cours de l’année 2010:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Sum(PrixSeance) FROM T_Seance WHERE Year(DateSeance)=2010
    C’est quand même beaucoup moins acrobatique que d’aller scruter dans les colonnes Date1,Prix1, Date2, prix2, Date3, prix3, ….

    Pour la saisie des factures, le plus simple est de créer un formulaire FormFacture associé à un sous-formulaire SFormSeance. Avec les assistants c’est du gâteau…

    Citation Envoyé par yochi_p
    PS: Y a t'il moyen de partager cette bdd sur ce site une fois terminée?
    Dans le s/forum Contribuez je suppose.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Voilà le schéma des relations.

    qqch de suspect à vos yeux?

    Raison = consultation pour accident/maladie, etc...

    TypePrestation = un code utilisé pour la facturation en Suisse.

    En gros, il y aura 3 catégories (sauf erreur):
    A1: un certain tarif horaire
    A2: un autre tarif horaire
    A12: un 3ème tarif horaire

    La plupart du temps, une séance comporte 3 type de prestations différentes.

    Je vous mettrai un exemple, ça sera probablement plus explicite.
    Images attachées Images attachées  

  7. #7
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 866
    Points
    56 866
    Billets dans le blog
    40
    Par défaut
    tu as mis une clé étrangère T_Facture.Ref_Seance, donc à une facture tu associes au plus une séance et une séance peut être associée à plusieurs factures (et donc plusieurs patients, séance collective ?).

    Je pense que tu souhaites l'inverse:
    A une facture, on peut associer plusieurs séances.
    A une séance, on associe une facture et une seule.

    il faut une clé étrangère T_Seance.Ref_Facture comme dans le schéma de mon post précédent.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Je crois avoir compris ce que tu voulais me transmettre.

    Voici le schéma final
    Images attachées Images attachées  

  9. #9
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 866
    Points
    56 866
    Billets dans le blog
    40
    Par défaut
    pourquoi pas

    éventuellement, comme les propriétés Adresse, localité, CP, TelFixe reviennent dans les 3 tables T_Patient, T_Assurance et T_Medecin, tu peux les externaliser dans une table T_Adresse(id, Adresse, localite, CP, TelFixe) à raccorder à tout ce pt'it monde.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Rebonjour tout le monde.

    J'ai pris quelques semaines de vacances et me voici de retour.

    J'ai déjà bien avancé et je vous ferai part de l'avancée de cette petite bdd sous peu.

    Merci encore pour l'aide

    Patrick

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Voici la version finale de mes relations.

    J'ai déjà commencé la partie "formulaire" de la BDD

    A bientôt
    Images attachées Images attachées  

Discussions similaires

  1. Composant ZeosLib : extraction structure BDD
    Par sam-sam dans le forum Langage
    Réponses: 1
    Dernier message: 25/10/2010, 18h10
  2. Structure BDD produits commerce
    Par ROUGEXIII dans le forum MySQL
    Réponses: 1
    Dernier message: 26/09/2010, 20h17
  3. [Toutes versions] Structure BDD Outlook (agenda,taches, etc)
    Par thierryG dans le forum Outlook
    Réponses: 0
    Dernier message: 31/05/2010, 19h22
  4. Récupération structure BdD
    Par Basicnav dans le forum SQL
    Réponses: 2
    Dernier message: 24/12/2008, 16h10
  5. Impression structurée de facture
    Par Tragnee dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 22/07/2007, 22h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo