Modèle de données au format SQL 92

JMP : Nous allons partir des specs de RETS 2.0 pour bâtir la base de donnée SQL correspondante.
Ensuite on écrira les procédures server-side pour générer les fichiers XML à la volée, dans la base de données.
Je ferai un démo.

Merci à Discotonio, fichier Excel en bas de page.

Type Clé Taille Plage Clé externe Null autorisé commentaire
PAYS (référentiel) ? pour pouvoir s'interfacer avec mappy ou google earth, il faut une identification claire du lieu par pays. Or le code postal est quelque chose de français...

VILLE (référentiel)
VILLE_CodePostal number X 0-5
VILLE_Nom varchar 100
VILLE_DEPARTEMENT_Numero varchar 3 X
VILLE_REGION_Numero number 0 X

DEPARTEMENT (référentiel)
DEPARTEMENT_Numero varchar X 3
DEPARTEMENT_Nom varchar 100

REGION (référentiel)
REGION_Numero number X
REGION_Nom varchar 100

ADRESSE_BIS (référentiel) (bis ter...)
BIS_ID num auto X
BIS_Nom varchar 5

TYPE (référentiel) (appart maison terrain...)
TYPE_ID num auto X
TYPE_Nom varchar 20

ADRESSE
ADRESSE_ID num auto X
ADRESSE_NoRue number 1-10000 X
ADRESSE_BIS_ID num auto X X
ADRESSE_NomRue varchar 100 X
ADRESSE_VILLE_CodePostal number 0-5 X
ADRESSE_Complement1 varchar 150
ADRESSE_Complement2 varchar 150

USER acheteur ou vendeur
USER_ID num auto X
USER_Nom varchar 100
USER_Prenom varchar 100
USER_Telephone number 10 chiffres X
USER_TelephonePortable number 10 chiffres X
USER_TelephoneAutre number 10 chiffres X un 3eme tél si besoin
USER_TelephoneAutreInformations varchar 30 X infos sur le type du 3ème tél
USER_Mail varchar 100
USER_PHOTO_ID num auto X X photo, avatar de la USER ?
USER_NickName varchar 100 X utilise t'on des nick names ?
USER_InformationsDisponibiliteContact varchar 300 X informations sur les horaires quand appeler... et autres
USER_PublierNom bool
USER_PublierMail bool
USER_PublierTelephones bool
USER_PublierNom bool

LIEU_TRAVAIL Permet d'ajouter des lieux de travail à un acheteur pour calculer automatiquement (via mappy ou google earth) la distance en km aux lieux de travail
LIEU_TRAVAIL_ADRESSE_ID num auto X X
LIEU_TRAVAIL_USER_ID num auto X X

VENDEUR
VENDEUR_ID num auto X
VENDEUR_USER_ID num auto X
VENDEUR_ADRESSE_ID num auto X

BIEN
BIEN_ID num auto X
BIEN_NoRue varchar 10 X
BIEN_NomRue varchar 100 X
BIEN_ADRESSE_ID num auto X
BIEN_VENDEUR_ID num auto X
BIEN_TYPE_ID num auto X
BIEN_SurfaceHabitable number
BIEN_SurfaceTerrain number En Carrez pour les apparts
BIEN_NbPieces number
BIEN_Accessible bool avec ascenseur pour les apparts ou de plain pied pour les maisons
BIEN_Etage bool étage pour les apparts
BIEN_Ascenseur bool ascenseur pour les apparts
BIEN_Handicape bool permet de savoir si le bien est adapte aux handicapés
BIEN_Piscine bool piscine pour les maisons
BIEN_ImpotsFonciersAnnuels number prix impots fonciers par mois
BIEN_Charges number prix charges par mois
BIEN_DepensesChauffage number prix chauffage par mois
BIEN_NbPlacesParking number nombre de places de parking privatives
BIEN_Commentaires varchar 2000 un commentaire avec format HTML autorisé (gras, souligné...)
BIEN_DistanceEcolePrimaire number Distance en km de la primaire la plus proche
BIEN_DistanceCollege number Distance en km du collège le plus proche
BIEN_DistanceLycee number Distance en km du lycée le plus proche
BIEN_DistanceCommerces number Distance en km des commerces de proximité (au minimum pain, tabac, journaux, épicerie)

PHOTO
PHOTO_ID num auto X
PHOTO_Commentaire varchar 1000 X un commentaire avec format HTML autorisé (gras, souligné...)
PHOTO_Blob blob

PHOTO_BIEN (association BIEN PHOTO)
BIEN_ID num auto X X
PHOTO_ID num auto X X

PRIX (permet un historique de prix)
PRIX_ID num auto X
PRIX_Montant double
PRIX_Date date
PRIX_BIEN_ID num auto X

RECHERCHE
RECHERCHE_ID num auto X
RECHERCHE_USER_ID num auto X
RECHERCHE_MontantMaxi double
RECHERCHE_DateMini date X
RECHERCHE_SurfaceHabitableMini double
RECHERCHE_SurfaceTerrainMini double X
RECHERCHE_NbPlacesParkingsMini double X
RECHERCHE_Piscine bool X
RECHERCHE_Ascenseur bool X
RECHERCHE_Accessible bool X
RECHERCHE_NbPieces number X
RECHERCHE_DistanceEcolePrimaireMaxi number X
RECHERCHE_DistanceCollegeMaxi number X
RECHERCHE_DistanceLyceeMaxi number X
RECHERCHE_DistanceCommercesMaxi number X
RECHERCHE_DepensesChauffageMaxi number X
RECHERCHE_EnvoiMailAuto bool Envoi automatique de mail
RECHERCHE_EnvoiMailAutoTousLes number Délai entre chaque envoi automatique de mails
RECHERCHE_EnvoiMailDateDernierEnvoi date champ interne pour retenir la date du dernier envoi

RECHERCHE_TYPE (association RECHERCHE TYPE) permet de faire une seule recherche concernant plusieurs types de bien
RECHERCHE_ID num auto X X
TYPE_ID num auto X X

EMPLACEMENT permet d'associer des emplacements à une recherche
EMPLACEMENT_RECHERCHE_ID num auto X X
EMPLACEMENT_VILLE_CodePostal number X X
EMPLACEMENT_DEPARTEMENT_Numero varchar X X
EMPLACEMENT_REGION_Numero number X X