BD mamearcade

De wikijoan
Salta a la navegació Salta a la cerca

Introducció

L'objectiu és documentar totes les tècniques (relacionades amb Web Extraction Data, Web_Data_Extraction) per construir una base de dades de les ROMS que funcionen i la meva valoració.

En els treballs previs he treballat amb el document llista_mestre.txt, però potser ara és el moment de passar això a una bd MySQL

Base de dades

CREATE DATABASE mamearcade;
USE mamearcade;
# CATEGORIA (id_categoria, categoria, ppal, fk_id_categoria)
# ROM (id_rom,romname, joc, id_categoria1, id_categoria2,id_romfk,year,lliure)
# VALORACIO (id_rom, tinc, romok, fav, play1, play2, noplay,nosetecles,comentaris);

CREATE TABLE CATEGORIA (
   id_categoria integer  NOT NULL,
   categoria char(20),
   ppal boolean,
   fk_id_categoria integer REFERENCES id_categoria,
   PRIMARY KEY (id_categoria)
);

CREATE TABLE ROM (
   id_rom integer  NOT NULL auto_increment,
   romname char(15) NOT NULL,
   joc char(40) NOT NULL,
   id_categoria1 integer REFERENCES CATEGORIA,
   id_categoria2 integer REFERENCES CATEGORIA,
   id_romfk integer NULL REFERENCES id_rom,
   year integer,
   lliure boolean DEFAULT 0,
   fabricant char(40),
   PRIMARY KEY (id_rom)
);

CREATE TABLE VALORACIO (
   id_rom integer  NOT NULL REFERENCES ROM,
   tinc boolean,
   romok boolean,
   fav boolean,
   play1 boolean,
   play2 boolean,
   noplay boolean,
   nosetecles boolean,
   comentaris char(40)
);

#he fet ALTER TABLE ROMWORLD ADD COLUMN tinczip boolean;
CREATE TABLE ROMWORLD (
   id_romworld char(6) NOT NULL,
   romname char(15) NOT NULL,
   joc char(40) NOT NULL,
   tinczip boolean,
   PRIMARY KEY (id_romworld)
);

#la informació per omplir aquesta taula la trec de
#http://maws.mameworld.info/maws/srch.php?page=1&mode=report&by=name
CREATE TABLE ROMMAWS (
   id_rommaws integer  NOT NULL,
   romname char(15) NOT NULL,
   joc char(100) NOT NULL,
   fabricant char(40),
   year integer,
   version char(10),
   id_categoria1 integer REFERENCES CATEGORIA,
   id_categoria2 integer REFERENCES CATEGORIA,
   PRIMARY KEY (id_rommaws)
);


INSERT INTO CATEGORIA VALUES (1,'Ball & Paddle',1,NULL);
INSERT INTO CATEGORIA VALUES (2,'BIOS',1,NULL);
INSERT INTO CATEGORIA VALUES (3,'Breakout',1,NULL);
INSERT INTO CATEGORIA VALUES (4,'Casino',1,NULL);
INSERT INTO CATEGORIA VALUES (5,'Climbing',1,NULL);
INSERT INTO CATEGORIA VALUES (6,'Driving',1,NULL);
INSERT INTO CATEGORIA VALUES (7,'Fighter',1,NULL);
INSERT INTO CATEGORIA VALUES (8,'Maze',1,NULL);
INSERT INTO CATEGORIA VALUES (9,'Mini-Games',1,NULL);
INSERT INTO CATEGORIA VALUES (10,'Misc',1,NULL);
INSERT INTO CATEGORIA VALUES (11,'Multiplay',1,NULL);
INSERT INTO CATEGORIA VALUES (12,'P',1,NULL);
INSERT INTO CATEGORIA VALUES (13,'Pinball',1,NULL);
INSERT INTO CATEGORIA VALUES (14,'Platform',1,NULL);
INSERT INTO CATEGORIA VALUES (15,'Puzzle',1,NULL);
INSERT INTO CATEGORIA VALUES (16,'Quiz',1,NULL);
INSERT INTO CATEGORIA VALUES (17,'Rhythm',1,NULL);
INSERT INTO CATEGORIA VALUES (18,'Shooter',1,NULL);
INSERT INTO CATEGORIA VALUES (19,'Sports',1,NULL);
INSERT INTO CATEGORIA VALUES (20,'Tabletop',1,NULL);

INSERT INTO CATEGORIA VALUES (21,'1st Person',0,6);
INSERT INTO CATEGORIA VALUES (22,'Boat',0,6);
INSERT INTO CATEGORIA VALUES (23,'Plane',0,6);
INSERT INTO CATEGORIA VALUES (24,'Race',0,6);
INSERT INTO CATEGORIA VALUES (25,'2.5D',0,7);
INSERT INTO CATEGORIA VALUES (26,'2D',0,7);
INSERT INTO CATEGORIA VALUES (27,'3D',0,7);
INSERT INTO CATEGORIA VALUES (28,'Field',0,7);
INSERT INTO CATEGORIA VALUES (29,'Misc',0,7);
INSERT INTO CATEGORIA VALUES (30,'Multiplay',0,7);
INSERT INTO CATEGORIA VALUES (31,'Versus',0,7);
INSERT INTO CATEGORIA VALUES (32,'Vertical',0,7);
INSERT INTO CATEGORIA VALUES (33,'Digging',0,8);
INSERT INTO CATEGORIA VALUES (34,'Driving',0,8);
INSERT INTO CATEGORIA VALUES (35,'Fighter',0,8);
INSERT INTO CATEGORIA VALUES (36,'Outline',0,8);
INSERT INTO CATEGORIA VALUES (37,'Shooter Large',0,8);
INSERT INTO CATEGORIA VALUES (38,'Shooter Small',0,8);
INSERT INTO CATEGORIA VALUES (39,'Surround',0,8);
INSERT INTO CATEGORIA VALUES (40,'Fighter',0,14);
INSERT INTO CATEGORIA VALUES (41,'Fighter Scrolling',0,14);
INSERT INTO CATEGORIA VALUES (42,'Run Jump',0,14);
INSERT INTO CATEGORIA VALUES (43,'Shooter',0,14);
INSERT INTO CATEGORIA VALUES (44,'Shooter Scrolling',0,14);
INSERT INTO CATEGORIA VALUES (45,'Cards',0,15);
INSERT INTO CATEGORIA VALUES (46,'Drop',0,15);
INSERT INTO CATEGORIA VALUES (47,'Match',0,15);
INSERT INTO CATEGORIA VALUES (48,'Maze',0,15);
INSERT INTO CATEGORIA VALUES (49,'Outline',0,15);
INSERT INTO CATEGORIA VALUES (50,'Sliding',0,15);
INSERT INTO CATEGORIA VALUES (51,'Toss',0,15);
INSERT INTO CATEGORIA VALUES (52,'Chinese',0,16);
INSERT INTO CATEGORIA VALUES (53,'English',0,16);
INSERT INTO CATEGORIA VALUES (54,'French',0,16);
INSERT INTO CATEGORIA VALUES (55,'German',0,16);
INSERT INTO CATEGORIA VALUES (56,'Italian',0,16);
INSERT INTO CATEGORIA VALUES (57,'Japanese',0,16);
INSERT INTO CATEGORIA VALUES (58,'Korean',0,16);
INSERT INTO CATEGORIA VALUES (59,'Music English',0,16);
INSERT INTO CATEGORIA VALUES (60,'Music Japanese',0,16);
INSERT INTO CATEGORIA VALUES (61,'Spanish',0,16);
INSERT INTO CATEGORIA VALUES (62,'Dance',0,17);
INSERT INTO CATEGORIA VALUES (63,'Instruments',0,17);
INSERT INTO CATEGORIA VALUES (64,'1st Person',0,18);
INSERT INTO CATEGORIA VALUES (65,'3rd Person',0,18);
INSERT INTO CATEGORIA VALUES (66,'Command',0,18);
INSERT INTO CATEGORIA VALUES (67,'Driving',0,18);
INSERT INTO CATEGORIA VALUES (68,'Driving Diagonal',0,18);
INSERT INTO CATEGORIA VALUES (69,'Driving Horizontal',0,18);
INSERT INTO CATEGORIA VALUES (70,'Driving Vertical',0,18);
INSERT INTO CATEGORIA VALUES (71,'Field',0,18);
INSERT INTO CATEGORIA VALUES (72,'Flying',0,18);
INSERT INTO CATEGORIA VALUES (73,'Flying (chase view)',0,18);
INSERT INTO CATEGORIA VALUES (74,'Flying 1st Person',0,18);
INSERT INTO CATEGORIA VALUES (75,'Flying Diagonal',0,18);
INSERT INTO CATEGORIA VALUES (76,'Flying Horizontal',0,18);
INSERT INTO CATEGORIA VALUES (77,'Flying Vertical',0,18);
INSERT INTO CATEGORIA VALUES (78,'Gallery',0,18);
INSERT INTO CATEGORIA VALUES (79,'Gun',0,18);
INSERT INTO CATEGORIA VALUES (80,'Misc',0,18);
INSERT INTO CATEGORIA VALUES (81,'Versus',0,18);
INSERT INTO CATEGORIA VALUES (82,'Walking',0,18);
INSERT INTO CATEGORIA VALUES (83,'Armwrestling',0,19);
INSERT INTO CATEGORIA VALUES (84,'Baseball',0,19);
INSERT INTO CATEGORIA VALUES (85,'Basketball',0,19);
INSERT INTO CATEGORIA VALUES (86,'Bowling',0,19);
INSERT INTO CATEGORIA VALUES (87,'Boxing',0,19);
INSERT INTO CATEGORIA VALUES (88,'Bull Fighting',0,19);
INSERT INTO CATEGORIA VALUES (89,'Darts',0,19);
INSERT INTO CATEGORIA VALUES (90,'Dodgeball',0,19);
INSERT INTO CATEGORIA VALUES (91,'Fishing',0,19);
INSERT INTO CATEGORIA VALUES (92,'Football Amer',0,19);
INSERT INTO CATEGORIA VALUES (93,'Rugby',0,19);
INSERT INTO CATEGORIA VALUES (94,'Golf',0,19);
INSERT INTO CATEGORIA VALUES (95,'Handball',0,19);
INSERT INTO CATEGORIA VALUES (96,'Hang Gliding',0,19);
INSERT INTO CATEGORIA VALUES (97,'Hockey',0,19);
INSERT INTO CATEGORIA VALUES (98,'Horse Racing',0,19);
INSERT INTO CATEGORIA VALUES (99,'Horseshoes',0,19);
INSERT INTO CATEGORIA VALUES (100,'Multiplay',0,19);
INSERT INTO CATEGORIA VALUES (101,'Ping pong',0,19);
INSERT INTO CATEGORIA VALUES (102,'Pool',0,19);
INSERT INTO CATEGORIA VALUES (103,'Shuffleboard',0,19);
INSERT INTO CATEGORIA VALUES (104,'Skateboarding',0,19);
INSERT INTO CATEGORIA VALUES (105,'Skiing',0,19);
INSERT INTO CATEGORIA VALUES (106,'SkyDiving',0,19);
INSERT INTO CATEGORIA VALUES (107,'Soccer',0,19);
INSERT INTO CATEGORIA VALUES (108,'Sumo',0,19);
INSERT INTO CATEGORIA VALUES (109,'Swimming',0,19);
INSERT INTO CATEGORIA VALUES (110,'Tennis',0,19);
INSERT INTO CATEGORIA VALUES (111,'Track & Field',0,19);
INSERT INTO CATEGORIA VALUES (112,'Volleyball',0,19);
INSERT INTO CATEGORIA VALUES (113,'Wrestling',0,19);
INSERT INTO CATEGORIA VALUES (114,'Hanafuda',0,20);
INSERT INTO CATEGORIA VALUES (115,'Mahjong',0,20);
INSERT INTO CATEGORIA VALUES (116,'Othello',0,20);
INSERT INTO CATEGORIA VALUES (117,'Renju',0,20);
INSERT INTO CATEGORIA VALUES (118,'Shougi',0,20);

Del contingut de

obtinc amb Deixto una llista de 6589 parells del tipus:

24637	'88 Games

24634	'99: The Last War

que converteixo amb CALC a inserts sql:

...
INSERT INTO ROMWORLD (id_romworld,romname) VALUES('24637','88 Games');
INSERT INTO ROMWORLD (id_romworld,romname) VALUES('24634','99: The Last War');
...

A dins de la pàgina

hi ha la informació que m'interessa: el nom de la rom: 88games.zip