Mysql-une rangee unique/a une autre?
Fermé
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
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
A voir également:
- Mysql-une rangee unique/a une autre?
- Mysql community server - Télécharger - Bases de données
- Vue unique whatsapp désactiver - Accueil - WhatsApp
- Revoir photo vue unique instagram - Forum Instagram
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) ✓ - Forum Linux / Unix
- Ora-00001: violation de contrainte unique - Forum Programmation
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
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.
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...
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...
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
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.
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.
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
6 déc. 2008 à 23:48
2 tables pas deux BDD ^^
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
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 ?
@+
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 ?
@+
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?
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?
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
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.
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
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