[SQL] Problème de clé secondaire

Fermé
Derzone - 4 mars 2009 à 16:38
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 - 5 mars 2009 à 08:46
Bonjour,

Je suis en phase de programmation dans le cadre de mon projet de fin d'année.
Celui-ci consiste en un jeu en ligne, et je bloque sur une partie essentielle.

Une page de vente aux enchères doit permettre aux membres d'acheter et de vendre des objets contenus dans leur coffre.

J'ai une table personnage, reliée à leur coffre par une idée secondaire.

L'idée est que ce coffre contient les idées secondaires des objets qu'ils possèdent (ces objets sont contenus dans les tables armures, armes, etc...

Et voilà que se pose mon problème.
Je ne sais pas ce que va contenir à l'avance ce coffre.

J'ai donc pensé en premier lieu à mettre toutes les idées secondaires possibles dans la table.
Seul hic, il n'y aura que l'une d'elle par champ qui sera remplie, les autres seront à NULL. Mais voilà... c'est impossible du fait qu'une clé secondaire doit être OBLIGATOIREMENT "not null".

Pour une meilleure explication voici un schéma rapide des tables (non exhaustif c'est pour l'exemple) :


PERSONNAGE
°°° _id

ARMURES
°°° _id

COFFRE
°°° _id
°°° #personnage_id
°°° #armures_id
°°° #armes_id
°°° #elixirs_id


Je commence donc à bloquer, et j'aimerais avoir vos lumières sur ce cas.
La solution qui me vient de suite à l'esprit serait un fichier XML où tous les objets du coffre seraient regroupés, mais cela compliquerait le code pour pas grand chose.

Merci d'avance,
Derzone.
A voir également:

1 réponse

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 513
5 mars 2009 à 08:46
Je pense que ce que je ferais c'est créé une armure, une arme et un élixir considéré comme objet vide.

Par exemple dans une table Ellixir avaoir :
id : elix_null
libellé : "aucun élixir n'est à votre disposition"
image : elixir_disable.gif

En plus vous pourrez avoir un affichage quand il n'y a pas d'objet du type existant.
0