par
jpsartre » 28 sept. 2006, 01:34
Bonjour,
J'aimerais créer mes bases pour faire un site immobilier dans le genre de myspace.
- L'utilisateur est soit :
- Un utilisateur visiteur lambda peut :
- déposer ses critères pour recevoir des logements
- choisir le design de son site (par exemple s'il propose un logement en location de vacances)
- Un utilisateur agence immobilière peut :
- déposer ses critères pour recevoir des logements
- choisir le design de son site (toutes ses annonces sont regroupées sur son site)
Un logement peut être proposé :
- à la semaine (je n'arrive pas à imaginer ce qu'il faut faire pour ça, une table avec toutes les semaines, 1, 2, 3... et 0 ou 1 pour indiquer la disponibilité et l'id du logement)

J'ai déjà fait des bases de données, mais toujours n'importe comment. J'aimerais pour une fois essayer de faire les choses un peu plus dans les règles et surtout ne pas me trouver coincer par la suite.
J'ai ce script pour mes tables :
Code : Tout sélectionner
CREATE TABLE choixutilisateur (
idchoix INT NOT NULL AUTO_INCREMENT,
idutilisateur INT NULL,
letype VARCHAR(20) NULL,
statut VARCHAR NULL,
prixmax NUMERIC NULL,
prixmin NUMERIC NULL,
loyermax NUMERIC NULL,
loyermin NUMERIC NULL,
terrasse BOOL NULL,
jardin BOOL NULL,
piscine BOOL NULL,
chauffage VARCHAR(20) NULL,
etage NUMERIC NULL,
surface NUMERIC NULL,
codepostal VARCHAR(5) NULL,
ville VARCHAR(45) NULL,
PRIMARY KEY(idchoix)
);
CREATE TABLE design (
iddesign INT NOT NULL AUTO_INCREMENT,
idutilisateur INT NULL,
bgcolor VARCHAR(7) NULL,
color VARCHAR(7) NULL,
h1color VARCHAR(7) NULL,
h2color VARCHAR(7) NULL,
h3color VARCHAR(7) NULL,
pbg VARCHAR(7) NULL,
pcolor VARCHAR(7) NULL,
PRIMARY KEY(iddesign)
);
CREATE TABLE logement (
idlogement INT NOT NULL AUTO_INCREMENT,
idutilisateur INT NULL,
idproprietaire INT NULL,
letype VARCHAR(20) NULL,
genre VARCHAR(25) NULL,
statut VARCHAR NULL,
ref VARCHAR(45) NULL,
titre VARCHAR(45) NULL,
prix NUMERIC NULL,
loyer NUMERIC NULL,
chargesloc NUMERIC NULL,
bouquet NUMERIC NULL,
rente NUMERIC NULL,
descriptionfr TEXT NULL,
descriptionen TEXT NULL,
terrasse BOOL NULL,
jardin BOOL NULL,
piscine BOOL NULL,
chauffage VARCHAR(20) NULL,
etage NUMERIC NULL,
surface NUMERIC() NULL,
adresse TEXT NULL,
codepostal VARCHAR(5) NULL,
ville VARCHAR(45) NULL,
PRIMARY KEY(idlogement)
);
CREATE TABLE utilisateur (
idutilisateur INT NOT NULL AUTO_INCREMENT,
societe VARCHAR(45) NULL,
nom VARCHAR(45) NULL,
prenom VARCHAR(45) NULL,
datenaissance DATE NULL,
adresse TEXT NULL,
codepostal VARCHAR(5) NULL,
ville VARCHAR(45) NULL,
tel VARCHAR(11) NULL,
mobile VARCHAR(10) NULL,
mail VARCHAR(45) NULL,
pseudo VARCHAR(20) NULL,
passe VARCHAR(20) NULL,
statut VARCHAR NULL,
debut DATE NULL,
fin DATE NULL,
avoir NUMERIC NULL,
PRIMARY KEY(idutilisateur)
);
Mais j'ai un gros doute sur les propriétés des champs (varchar, int, etc...) et je voudrais savoir si ces tables peuvent me permettre de faire ce que je veux. J'ai lu le tuto Merise conseillé sur ce site, c'est pour ça que j'essaye de penser un peu la chose avant de me lancer, mais ce n'est pas évident. A ce sujet, que signifie la relation n:m?
Si quelqu'un peut me conseiller,
Merci
Bonjour,
J'aimerais créer mes bases pour faire un site immobilier dans le genre de myspace.
- L'utilisateur est soit :
[list]un visiteur lambda[/list]
[list]une agence immobilière[/list]
[list]un propriétaire[/list]
- Un utilisateur visiteur lambda peut :
[list]déposer des logements[/list]
[list]déposer ses critères pour recevoir des logements[/list]
[list]choisir le design de son site (par exemple s'il propose un logement en location de vacances)[/list]
- Un utilisateur agence immobilière peut :
[list]déposer des logements[/list]
[list]déposer ses critères pour recevoir des logements[/list]
[list]choisir le design de son site (toutes ses annonces sont regroupées sur son site)[/list]
Un logement peut être proposé :
[list]à la vente[/list]
[list]à la location[/list]
[list]en viager[/list]
[list]à la semaine (je n'arrive pas à imaginer ce qu'il faut faire pour ça, une table avec toutes les semaines, 1, 2, 3... et 0 ou 1 pour indiquer la disponibilité et l'id du logement) :?: [/list]
J'ai déjà fait des bases de données, mais toujours n'importe comment. J'aimerais pour une fois essayer de faire les choses un peu plus dans les règles et surtout ne pas me trouver coincer par la suite.
J'ai ce script pour mes tables :
[code]CREATE TABLE choixutilisateur (
idchoix INT NOT NULL AUTO_INCREMENT,
idutilisateur INT NULL,
letype VARCHAR(20) NULL,
statut VARCHAR NULL,
prixmax NUMERIC NULL,
prixmin NUMERIC NULL,
loyermax NUMERIC NULL,
loyermin NUMERIC NULL,
terrasse BOOL NULL,
jardin BOOL NULL,
piscine BOOL NULL,
chauffage VARCHAR(20) NULL,
etage NUMERIC NULL,
surface NUMERIC NULL,
codepostal VARCHAR(5) NULL,
ville VARCHAR(45) NULL,
PRIMARY KEY(idchoix)
);
CREATE TABLE design (
iddesign INT NOT NULL AUTO_INCREMENT,
idutilisateur INT NULL,
bgcolor VARCHAR(7) NULL,
color VARCHAR(7) NULL,
h1color VARCHAR(7) NULL,
h2color VARCHAR(7) NULL,
h3color VARCHAR(7) NULL,
pbg VARCHAR(7) NULL,
pcolor VARCHAR(7) NULL,
PRIMARY KEY(iddesign)
);
CREATE TABLE logement (
idlogement INT NOT NULL AUTO_INCREMENT,
idutilisateur INT NULL,
idproprietaire INT NULL,
letype VARCHAR(20) NULL,
genre VARCHAR(25) NULL,
statut VARCHAR NULL,
ref VARCHAR(45) NULL,
titre VARCHAR(45) NULL,
prix NUMERIC NULL,
loyer NUMERIC NULL,
chargesloc NUMERIC NULL,
bouquet NUMERIC NULL,
rente NUMERIC NULL,
descriptionfr TEXT NULL,
descriptionen TEXT NULL,
terrasse BOOL NULL,
jardin BOOL NULL,
piscine BOOL NULL,
chauffage VARCHAR(20) NULL,
etage NUMERIC NULL,
surface NUMERIC() NULL,
adresse TEXT NULL,
codepostal VARCHAR(5) NULL,
ville VARCHAR(45) NULL,
PRIMARY KEY(idlogement)
);
CREATE TABLE utilisateur (
idutilisateur INT NOT NULL AUTO_INCREMENT,
societe VARCHAR(45) NULL,
nom VARCHAR(45) NULL,
prenom VARCHAR(45) NULL,
datenaissance DATE NULL,
adresse TEXT NULL,
codepostal VARCHAR(5) NULL,
ville VARCHAR(45) NULL,
tel VARCHAR(11) NULL,
mobile VARCHAR(10) NULL,
mail VARCHAR(45) NULL,
pseudo VARCHAR(20) NULL,
passe VARCHAR(20) NULL,
statut VARCHAR NULL,
debut DATE NULL,
fin DATE NULL,
avoir NUMERIC NULL,
PRIMARY KEY(idutilisateur)
);
[/code]
Mais j'ai un gros doute sur les propriétés des champs (varchar, int, etc...) et je voudrais savoir si ces tables peuvent me permettre de faire ce que je veux. J'ai lu le tuto Merise conseillé sur ce site, c'est pour ça que j'essaye de penser un peu la chose avant de me lancer, mais ce n'est pas évident. A ce sujet, que signifie la relation n:m?
Si quelqu'un peut me conseiller,
Merci