Mysql-une rangee unique/a une autre?

Fermé
moon - 6 déc. 2008 à 22:21
 moon - 7 déc. 2008 à 00:58
Bonjour,

voila je commence tout juste sur mysql et je cherche a faire un tableau pour gerer une chaine d' hotels.
j'ai un tableau chambres avec le nom, l'identifiant chambre et l'identifiant hotel etc.
dans ma chaine d'hotel les chambres ont toutes un identifiant different donc pas de souci pour la primary key, mais je veux trouver un moyen de donner un nom de chambre qui soit unique pour chaque hotel, et pas forcement dans toute la chaine.
j'ai pense decomposer mon tableau mais ca marche pas mieux
euh c'est clair mon explication?
quelqu'un peut m'aider?

merci d'avance

6 réponses

zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
6 déc. 2008 à 22:28
Salut, pour avoir une référence par chambre et par champs, tu peux mettre ta 1ere colonne "id" que tu met en "auto_increment"et comme ça, chaque champs dans ta bdd auras un numéro différent.
0
Salut,

OK merci je crois que je vois ce que tu veux dire, c'es t super pratique ton truc ( je suis allee la pour piger quand meme): https://dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html

en fait mon probleme c'est pas tellement la cle c'est plus que dans le meme tableau j'ai deux champs dont un doit etre unique apar rapport a l'attribut de la premiere... je sais c'est pas tres clair
par exemple si j'ai une colone 'animaux' et une colonne 'aliment prefere' l' aliment prefere peut pas etre deux fois banane pour le singe mais il peut etre banane pour le singe et pour la vache....
:)

je pense qu'il faut que je decompose quelque part mais je trouve pas ou...
0
zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
6 déc. 2008 à 23:26
Ba la, j'ai pas tellement compris le truc des bananes ^^, mais pour ton problème, je ferais 2 bdd. Exemple :
1ere BDD ->Hotel

id nom
1 "hotel de la gare"
2 "...."
3 "...."

2nd BDD -> Chambre

id id_hotel numero libre
1 2 25 0
2 2 36 0
3 1 58 1
4 2 10 1
....

ça te permet de trier plus rapidement par nom de l'hôtel ou d'afficher toutes les chambres en même temps. Et tu auras le 1er champs qui te donne le numéro de la chambre et le 2nd qui te donne celui de l'hôtel. Je sais pas si ça répond à ta question mais j'espère que ça va pouvoir t'aider un peu.
0
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
6 déc. 2008 à 23:48
2 tables pas deux BDD ^^
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
6 déc. 2008 à 23:32
bonsoir je passe rapidement,
pourqoui ne ferais tu pas une table pour chaque categorie ?
une table aniamux
une table aliment prefere
etc..
chaque table ayant un ID unique, une description et c'est tout
ensuite dans ta table qui gere les hotels tu integre seulement l'id de la table correspondante suivant ton besoin
une simple requete t'affiche le resulat

tu vois ce que je veut dire ?
@+
0

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

Posez votre question
salut, merci beaucoup! je suis pas sure d'avoir tout compris
donc je m'explique sans les bananes ca sera pt etre plus clair...en fait j'ai deux tables :

hotel:

ID | nom | Url....

1 | gare | www....

et chambre:

ID | nom | hotel_ID | Etage...

1 | presidentielle | 1 | 2
1 | familiale | 2 | 2
1 | jeune maries | 1 | 2
2 | presidentielle | 1 | 2

et dans mon tableau chambre je voudrais savoir si mysql peut determiner d'une facon ou d'une autre que la colonne nom soit unique pour quand l'hotel.ID est 1 par exemple

le truc c'est que je voulais garder nom et ID dans chambre parce que ID est ma primary key ( nom peut pas etre unique vu que j'ai une table chambre pour toutes les chambres de tous les hotels).

si j'ai bien cmpris votre avis, je devrais peut etre enlever carrement l'ID de la table chambre et mettre en primary un truc du genre hotel.nom_de_chambre? je suis pas sure que ca reglerait le probleme mais ca simplifirait ma table d'une colonne deja.

Voila si quelqu'un a mieux je suis preneuse?
0
Ups mon schema il etait tout faux:

hotel:

ID | nom | Url....

1 | gare | www....

et chambre:

ID | nom | hotel_ID | Etage...

1 | presidentielle | 1 | 9e
1 | familiale | 2 | 2e
1 | jeune maries | 3 | 3e
2 | presidentielle| 4 | 10e
0
zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
7 déc. 2008 à 00:35
Il y a encore un soucis, le champs ID est en auto_increment, donc tu ne peux pas avoir 2 fois le même numéro, mais je ne vois pas exactement ce que tu veux faire.
0
Oui desolee la ca devrait aller mieux.

en fait je voudrais pouvoir ajouter un domaine ou une facon pour que mysql sache que pour le meme attribut dans hotel_ID un attribut dans le champ nom ne puisse pas etre deux fois le meme.
vu que je ne peux pas rendre unique le champ nom, puisque deux chambres dans deux hotels differents peuvent avoir le meme nom..

par exemple que ca puisse donner:

chambre:

ID | nom | hotel_ID | Etage...

1 | presidentielle | 1 | 9e
2 | familiale | 1 | 2e
3 | jeune maries | 1 | 3e
4 | presidentielle| 2 | 10e

mais que:

ID | nom | hotel_ID | Etage...

1 | presidentielle | 1 | 9e
2 | familiale | 1 | 2e
3 | jeune maries | 1 | 3e
4 | presidentielle| 1 | 10e

ne soit pas possible

peut etre que je cherche juste un truc qui n'existe pas en fait
0