[revevolutionair] [orga DEV] BDD, surtout pour Mik

[ Thread Index | Date Index | More lists.tuxfamily.org/revevolutionair Archives ]


Bonsoir la tribu,

Ce mail concerne la BDD, et ce que je propose pour certaines tables. Bon c'est assez long comme mail, désolée. Sam, il y a quelques questions aussi pour toi.
Dans la mesure du possible, j'ai essayé de mettre des noms anglais.

J'ai cru comprendre que Symfony travaillait beaucoup sur base des id. Est-ce que je me trompe?
Si non, je proposerais alors qu'on mette des id en clé primaire autoincrémentale dans toutes les tables (id: primary key, autoincrement). Cela pose-t-il un problème?

Voilà quelques tables, qui ressemblent d'ailleurs très fort à ce qu'elles sont déjà dans l'actuelle BDD.

Avatar
------
id
avatar_name
avatar_age
avatar_race
account_id
avatar_world
politic_regime
player_filiation_type
player_filiation_hypot
player_filiation_cert
level_aggressivity
level_fraud
level_commerce
level_efficiency
last_connexion
avatar_life    ?? question: faut-il vraiment cette caractéristique puisque l'avatar est un D'jun, donc un esprit, en principe immortel??

les champs obligatoires (non nuls) sont avatar_name, avatar_race, avatar_age, account_id (clé étrangère), les autres peuvent être nuls
==============================================================================

Town
----
id
name        
WorldSlotId       (entier     doit être défini par choix sur la carte au moment de créer la ville)
size (calculée sur base des coord et du slot correspondant) entier  (une fois que la case d'établissement de la ville est choisie, sa taille et toutes les autres caractéristiques sont calculées)
defense_bonusmalus
food_bonusmalus
iron_bonus
wood_bonus
cyniam_bonus
avatar_id                                    entier
building_productionWood                        entier
building_stockWood                            entier
building_productionIron                        entier
building_stockIron                            ......
building_productionCyniam
building_stockCyniam
building_productionFood
building_stockFood
building_wizardryTrainingAttack
building_wizardryTrainingDefense
building_armyTrainingHand2hand
building_armyTrainingDistancefighting
building_armyTrainingDefense
building_troopCamp
slotId_building_troopCamp
building_productionMotorizedUnit
building_wizardSchool
building_manaHarvesting
building_science
building_wall
building_turret                               
building_ambassy                            entier
building_guild

Tous les champs obligatoires
name, coordinates_slotId, size, defense_bonusmalus, food_bonusmalus, iron_bonus, wood_bonus, cyniam_bonus, avatar_id sont déterminés au moment de la création
les autres sont mis par défaut aux valeurs de départ (soit par la création de la ville, soit directement dans la table ?)
======================================================================================================

WorldSlot
---------
id
coordinates
terrain
vegetation
climate
state (occupé, occupable, ou pas occupable) => 3 états possibles
whatIsOn (si occupé, dire ce qui l'occupe > liste possible [ville, armée, quête ...]), utile pour l'affichage
world_id (au départ il n'y a qu'un seul monde mais ça peut évoluer)
tile
NB: pas besoin de définir de taille ou des boni (defense, eat ..) car ça sera associé au village en fonction des caractéristiques de ces slots => redondance ?

Tous les champs sont obligatoires. On pourrait les définir par défaut dans la table et ils seraient changés au moment de la création du monde?
================================================================================================================

Guild
------
id
name
creationDate
endingDate
promoter_name

Tous les champs sont obligatoires, promoter_name = clé étrangère (avatar). Je laisserais tomber member_name puisqu'il y a une table member-guilde
==================================================================================

Table index_marche
 il faudrait rajouter l'id du marché auquel l'index est associé


Dans la table BdC, il y a town_name NOT NULL. Pourquoi faut-il associer une ville à 1 BdC? Ne serait-ce pas plutôt l'id du marché si la transaction concerne un marché et non la bourse?
De toute façon, un BdC concerne soit la bourse (=> offre_id) soit un marché => market_id devrait s'y trouver aussi.

Table emplacement_marche_joueur (ou guilde) => Market_player (_guild) (site en anglais): je suppose qu'il n'y a qu'un proprio mais qu'il peut y avoir plusieurs locataires => je mettrais un table de relations avatar(ou guilde)-marché (voir plus bas)
------------------------------------------------------------
market_id
worldslot_id
name
place_price
location_price
market_type (liste à dresser)
percent_tax
owner_type (avatar ou guilde)
owner_id
rent_duration


Table Market_avatar ou Market_guild: liste des relations avatar-marchés (ou guildes-marchés), avatars qui louent un emplacement sur un marché
-----------------------------------
avatar_id   ou guild_id
market_id

Je ne comprends pas l'utilité de la table index_avatar,  les données se trouvent dans la table avatar
?? => utilité??


Voilà, que chacun donne son avis sur ces propositions bien incomplètes.

A +

Domi


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/