<Installation> <Les fichiers du site> <Les données du site> <Nos points forts> <Extensions envisagées>

Les données du site

Les informations suivantes permettent de vous faire une première idée de l'organisation des données manipulées par le site.


Introduction

Conformément au sujet du projet, les données sont enregistrées dans une base de données MySQL.
Ce n'est que lorsque l'administrateur se rends dans la zone d'administration pour effectuer une exportation que le catalogue des produits peut être copié dans un fichier XML.
Etant donné que notre site repose largement sur des classes, les données sont encapsulées dans celles-ci et on manipule alors directement des instances de classes, et non des tableaux associatifs d'attributs.


Les tables de la base MySQL

Voici le shéma SQL que nous avons adopté :

TABLE `categorie`
idc Numéro de catégorie
libellé Libellé de la catégorie

TABLE `sous_categorie`
ids Numéro de sous-catégorie
idc Clé étrangère correspondant à la catégorie parente
libellé Libellé de la sous-catégorie
infoTaille Faut-il afficher la taille des produits de cette sous-catégorie ?
infoPoids Faut-il afficher le poids des produits de cette sous-catégorie ?
infoCouleur Faut-il afficher la couleur des produits de cette sous-catégorie ?


TABLE `article`
ida Numéro d'article
ids Clé étrangère correspondant à la sous-catégorie à laquelle apparient l'article
poids Poids de l'article (facultatif)
couleur Couleur de l'article (facultative)
taille Taille de l'article (facultative)
prix Prix de l'article (en euros)
libellé Libellé de l'article
description Description de l'article
libelleMarque Marque de l'article
nbNeuf Nombre d'exemplaires neufs pour cet article
nbOccasion Nombre d'exemplaires d'occasion pour cet article
louable Cet article est-il louable ou non ?


TABLE `client`
idcli Numéro de client
login Login du client
pass Mot de passe du client
nom Nom du client
prenom Prénom du client
email Email du client
adresse Adresse du client


TABLE `administrateur`
idadmin Numéro d'administrateur
login Login de l'administrateur
pass Mot de passe de l'administrateur


TABLE `achat`
idAchat Numéro de l'achat
idcli Clé étrangère correspondant au client effectuant l'achat
ida Clé étrangère correspondant à l'article acheté
dateAchat Date de l'achat
prix Prix unitaire de l'article au moment de l'achat
qte Quantité achetée


TABLE `location`
idloc Numéro de la location
idcli Clé étrangère correspondant au client effectuant la location
ida Clé étrangère correspondant à l'article loué
dateLocation Date de la location
prixParJour Prix unitaire par jour de la location
caution Caution totale laissée au moment de la location
dateRetour Date de retour de l'article (à -1 si l'article n'est pas encore retourné)
qte Quantité d'articles loués




Structure de nos fichiers XML

Pour représenter le catalogue dans un fichier xml, nous avons adopté la structure suivante :




Voici le DTD qui permet de valider ces fichiers :

<!ELEMENT catalogue (categorie*)>
<!ELEMENT categorie (souscategorie*)>
<!ATTLIST categorie
libelle CDATA #REQUIRED>
<!ELEMENT souscategorie (article*)>
<!ATTLIST souscategorie
libelle CDATA #REQUIRED
infoPoids (oui|non) #REQUIRED
infoTaille (oui|non) #REQUIRED
infoCouleur (oui|non) #REQUIRED>
<!ELEMENT article (marque,description,couleur?,poids?,taille?,prix,stock)>
<!ATTLIST article
ida CDATA #REQUIRED
libelle CDATA #REQUIRED
louable (OUI|NON) #REQUIRED>
<!ELEMENT marque (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT prix ANY>
<!ELEMENT stock (neuf,occasion)>
<!ELEMENT couleur (#PCDATA)>
<!ELEMENT poids (#PCDATA)>
<!ELEMENT taille (#PCDATA)>
<!ELEMENT neuf (#PCDATA)>
<!ELEMENT occasion (#PCDATA)>