Pour ce que tu cherches à faire je passeraispar plusieurs tables. Quelque chose comme une table sorts qui possède des champs qui appellent une table effets et des champs de valeur. En version simplifiée imaginons ta table sorts:
nom_du_sort, cout_mana, effet1, valeur1, effet2, valeur2, effet3, valeur3.
Bon et tu ne peux mettre qu'un seul effet et qu'un seul paramètre si tu n'as pas besoin de plus. Donc maintenant imaginons une entrée dans cette table:
boule_de_feu, 10, degats_feu, 25, brulure, 10, aucun, 0.
Et maintenant dans une table effets on pourrait imaginer quelque chose comme :
nom_effet, type_effet, type_sort.
Et là tu aurais par exemple deux entrées : degats_feu, degats_direct, elemental_feu
et brulure : brulure, degats_sur_temps, elemental_feu.
Enfin je pense que je m'y prendrais comme ça. Après concernant tes actualisations sur le temps pourquoi ne pas utiliser un simple timestamp et ne rafraichir les données que quand tu en as vraiment besoin plutôt que de faire des requetes immenses ?
Edit: Tu peux aussi rajouter type_cibles possibles si tu veux gérer les bâtiments...
nom_du_sort, cout_mana, effet1, valeur1, effet2, valeur2, effet3, valeur3.
Bon et tu ne peux mettre qu'un seul effet et qu'un seul paramètre si tu n'as pas besoin de plus. Donc maintenant imaginons une entrée dans cette table:
boule_de_feu, 10, degats_feu, 25, brulure, 10, aucun, 0.
Et maintenant dans une table effets on pourrait imaginer quelque chose comme :
nom_effet, type_effet, type_sort.
Et là tu aurais par exemple deux entrées : degats_feu, degats_direct, elemental_feu
et brulure : brulure, degats_sur_temps, elemental_feu.
Enfin je pense que je m'y prendrais comme ça. Après concernant tes actualisations sur le temps pourquoi ne pas utiliser un simple timestamp et ne rafraichir les données que quand tu en as vraiment besoin plutôt que de faire des requetes immenses ?
Edit: Tu peux aussi rajouter type_cibles possibles si tu veux gérer les bâtiments...