JeuWeb - Crée ton jeu par navigateur
[BDD] Faire un Ou exclusif - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [BDD] Faire un Ou exclusif (/showthread.php?tid=113)



[BDD] Faire un Ou exclusif - dark_vidor - 28-02-2007

Voici mon problème soit les 5 tables suivantes :
[Image: sanstitre1ej3.png]

Est il possible de controler en interne via une requete sql un OU exclusif ... le vaisseau ne pouvant se trouver que sur une planete ou une station ou une flotte

Je pensais reduire ma liaison a ça :
[Image: sanstitre2zt8.png]
Es ce que dans ce cas la il est plus simple que lorsqu'on effectue la mise a jour le ou exclusif soit automatique ?

Merci de m'eclairer


RE: [BDD] Faire un Ou exclusif - pascal - 28-02-2007

la solution 2 est plus sympa, en gros il faut juste verifier qu'il n'y a qu'une seule ligne dans la table de liaison pour les vaisseaux.

est-il possible que tu ailles plus loin?
je veux dire :
_ regrouper stations, flottes, planetes dans une seule table
_ ajouter un type ( station, flotte ou planete )

ça pourrais pê te simplifier le SQL.

A+

Pascal


RE: [BDD] Faire un Ou exclusif - dark_vidor - 28-02-2007

regrouper hum non je prefere pas ... pour la simple et bonne raison que planete sera une table qui sera definie des le debut du jeu, les deux autres seront en constantes evolutions ... mais c'est vrai que ces deux la je pourais peut etre les regrouper à voir ^^

le fait de les regrouper ferais si je comprends bien le OU exclusif ... simplement puisqu'il suffirait de redéfinir le type pour que la mise a jour soit faite automatiquement :heuuu:

je vais y retravailler


RE: [BDD] Faire un Ou exclusif - Seren - 28-02-2007

D'après cet page, le ou exclusif : XOR existe comme opérateur, donc tu peux l'utiliser.

http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html

(Après j'ai pas lu plus loin pour savoir si c'était optimisé ou pas.)


RE: [BDD] Faire un Ou exclusif - Sephi-Chan - 28-02-2007

J'espère que ça pourra t'aider : http://www.developpez.net/forums/showthread.php?t=9896


Sephi-Chan


RE: [BDD] Faire un Ou exclusif - Roworll - 01-03-2007

Si le vaisseau ne peux etre qu'à un seul endroit (une planete ou une station ou une flotte) cette information est en quelque sorte une propriété du vaisseau (player_ship_loc_id par exemple).

Par conséquent, cette information devrait être dans la table vaisseau elle même et on s'affranchit de la tale de liaison.

Après, pour savoir si l'emplacement ou se trouve le vaisseau est une planete, une station ou une flotte, il suffit de rajouter un champ qui va indiquer le type de lieu ou il se trouve (player_ship_loc_type par exemple avec comme valeurs 0-> planete, 1-> station, 2 -> flotte).