Utilisation d'une base de données access

Résolu
camboulit Messages postés 5 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 15 mai 2007 - 2 avril 2007 à 21:40
camboulit Messages postés 5 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 15 mai 2007 - 11 avril 2007 à 16:02
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
7 avril 2007 à 15:14
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
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
3 avril 2007 à 00:39
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
0
camboulit Messages postés 5 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 15 mai 2007
3 avril 2007 à 20:30
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
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
3 avril 2007 à 22:55
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
camboulit Messages postés 5 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 15 mai 2007
7 avril 2007 à 12:20
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
  
0
camboulit Messages postés 5 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 15 mai 2007
11 avril 2007 à 16:02
Bonjour,
Merci pour ton aide qui m'a permis de mieux comprendre Merise.
Ca fonctionne sous access
Cordialement
huguette
0
Rejoignez-nous