Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

DataBase modelization

Vaubourg Mandel edited this page Sep 10, 2017 · 17 revisions

DATABASE MODELIZATION

MLD (logical model of the database)

LMD

Explanations

We got three tables.

  • The first one, the Map table, contain the name of the map (primary key), its dimensions (width, height) and the number of diamond and the time to finish the level.

  • The second, the ObjectType table, contain the differents types of elements (primary key) that will compose the Map (Dirt, Rock, Monsters, character, Diamond, Wall).

Finally, these two tables are linked by the ObjectMap relation which contain the primary key of the Map table and the ObjectType table, and this key will additionally be composed of the x and y coordinates (avoids redundancy of entry in the Table).


CUSTOMIZATION DATABASE

  • Updating or deleting an entry in Map is propagated in ObjectMap :
ObjectMap_Map_MapName_fk FOREIGN KEY (MapName) REFERENCES Map (MapName) ON DELETE CASCADE ON UPDATE CASCADE

So if a map is deleted from the Map table, the elements that compose it are removed from the ObjectMap.

  • The update of an Object Type entry is propagated in ObjectMap the deletion will be blocked :
ObjectMap_ObjectType_TypeObject_fk FOREIGN KEY (TypeObject) REFERENCES ObjectType (TypeObject) ON UPDATE CASCADE

If a ObjectType change in TypeObject table, it will change in ObjectMap table.


Stored routines

We got nine stored routines :

sql addMap(IN nameMap VARCHAR(255), IN width INT, IN heigh INT, IN nbrDiamond INT, IN timeremaining INT)
  • Allow to add a Map in dataBase.
sql addMapElement(IN nameMAP VARCHAR(255), IN nameElement VARCHAR(255), IN X INT, IN Y INT)
  • Allow to add the map in database.
sql addObjectType(IN OType VARCHAR(255))
  • Allow to add the Object map.
sql getMap(IN NameMap VARCHAR(255))
  • Allow to get an map.
sql getMapNames()
  • Allow to get the list of map names.
sql getMapObjects(IN NameMap VARCHAR(255))
  • Allow to retrieve objects map.
sql removeMap(IN nameMap VARCHAR(255))
  • Allow to remove the map.
sql removeMapElement(IN nameMAP VARCHAR(255), IN nameElement VARCHAR(255))
  • Allow to remove Map Object.
sql removeObjectType(IN OType VARCHAR(255))
  • Allow to remove Object type.