Utilisation d'une base de données access [Résolu]

Signaler
Messages postés
5
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
15 mai 2007
-
Messages postés
5
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
15 mai 2007
-
Bonsoir,
Je suis en train de construire une Base et j'aimerai avoir votre avis sur la construction de mon MCD que voici : j'ai 3 tables :
Biens : NumBien, désignation, étage, chambres, jardin, piscine, éloignement centre ville, tarif du 1/07 au 15/07, du 16/07 au 31/07, du 1/08 eu 15/08, du 16/08 au 31/08, numpropriétaire,
propriétaire : numpropriétaire, nom, prénom, adresse, cp, ville
locations : numlocation, période, NumBien
Relations établies : bien - location : 1 à plusieurs propriétaire – bien : 1 à plusieurs
Mon MCD est-il cohérent ? A partir de là j’aimerai faire des requêtes pour savoir les biens qui ne sont pas loués mais je n’y arrive pas ; j’ai dû mal concevoir ma base ? Pouvez-vous m’aider ? Merci infiniment
Hugues

6 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
31
Salut,

Je ne suis pas d'accord avec ta proposition.
Voici un bout de MCD pour la gestion des tarifs.

Bien (numbien, ....)
tarif(numbien,numperiode,prix)
periode(numperiode,description) voir (numperiode, debutperiode, finperiode)

Exemple de table periode
numperiode, description
(1,1/07 au 15/07)
(2,16/07 au 31/07)

....

Avecla solution 2
(1,1/07,15/07)
....

et pour la table tarifs
numbien,numperiode,tarifs.
(1,1,100?)
....


Cette manière de modiliser de permettra de gérer
des périodes différentes de quinze jours, des périodes hors juillet aout

Et cela sans créer de colonnes supplementaires dans la table biens.

J'espere avoir compris ton probleme et été clair.

Voila
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
31
Salut,

Ton MCD est mauvais pour les biens.
il faut eclater plus.

tarifs : num bien | periode |prix

C'est plus evolutif et moins contraignant à gérer.

Si un jour tu veux louer un appartement du 15/06 au 1/07 tu es obligé de faire une nouvelle colonne c'est pas pratique.
+ changer l'IHM, ...

Alors que la normalement tu n'auras que l'ihm a changer et encore, cela dependant quels controles tu utilises.


Pour ta requete, ta demande est trop imprecise.

* exe non louee sur une periode

select numbien from biens where numbiens not in (select numbien
from location where periode = X )

Je ne sais si la requete est fonctionnelle sur access mais ca donne une idée

bon courage
Messages postés
5
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
15 mai 2007

Bonsoir
Merci pour ta réponse mais j'ai beaucoup de mal avec ce cas. Voic ce qu'il devient :
* Biens : NumBien, désignation, étage, chambres, jardin, piscine, éloignement centre ville, numpropriétaire,
* propriétaire : numpropriétaire, nom, prénom, adresse, cp, ville
* louer : numlocation, période, NumBien
* tarif : période (du 1/07 au 15/07, du 16/07 au 31/07, du 1/08 eu 15/08, du 16/08 au 31/08), tarif, numbien 
Relations établies :
      -  biens - louer : 1 à plusieurs (lien numbien)
      -  propriétaire - biens : 1 à plusieurs (lien : numpropriétaire)
       - biens - tarif : 1 à plusieurs (lien numbien)

Par contre, je ne sais pas si je dois mettre une clé primaire à la table tarif
et je n'arrive pas à faire mes requêtes qui me permettent de trouver les biens qui ne sont pas loués (j'ai appliqué la requête sql que tu m'as indiqué et il ne m'affiche pas les numéros des biens non loués)
 Que signifie IHM ?
Merci de ton aide
Une débutante !!!!
Huguette
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
31
Salut,


J'ai testé la requete suivante sur access 2007

select * from bien where bien.num_bien
Not in(

SELECT bien.num_bien
FROM Bien INNER JOIN LOCATION ON Bien.Num_bien= LOCATION.[Num bien])


Et j'ai le bon resultat

Je ne vois pas ou est le probleme

Pour IHM : --> Interface Homme Machine (exemple page internet ou application en vb6 ou dotnet) ou autres

Voila
Messages postés
5
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
15 mai 2007

Bonjour,
Oui tu as raison, ça marche ; je ne maîtrise pas trop le SQL. Merci. Par contre, j'ai modifié mon MCD car il me semble qu'il ne doit pas y avoir redondance dans mes tables : or j'avais "période" dans 2 tables différentes : voilà comment je l'ai transformé :
 * Biens : NumBien, désignation, étage, chambres, jardin, piscine, éloignement centre ville, tarif du 1/07 au 15/07, tarif du 16/07 au 31/07, tarif du 1/08 eu 15/08, tarif du 16/08 au 31/08, numpropriétaire
* propriétaire : numpropriétaire, nom, prénom, adresse, cp, ville
* louer : numlocation, période, NumBien

Relations établies :
      -  biens - louer : 1 à plusieurs (lien numbien)
      -  propriétaire - biens : 1 à plusieurs (lien : numpropriétaire)
J'espère que cette fois c'est correct. Merci de me donner ton avis.
Bonne journée
Huguette
  
Messages postés
5
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
15 mai 2007

Bonjour,
Merci pour ton aide qui m'a permis de mieux comprendre Merise.
Ca fonctionne sous access
Cordialement
huguette