Съхранявам статистика за времето, в което е приключила битката, ако е приключила изобщо. Не всички битки свършват и тези, които не се превръщат в решения.
Пример:
Китао победи Джоунс чрез събмишън (клавишно заключване) в 2:14 на рунд 1.
От тази част от данните искам да съхраня 3 неща:
- ако битката е приключила, времето, в което е приключила
- ако битката е приключила, в кой рунд е приключила
Сложната част от това обаче е, че тъй като проследявам битки от множество организации, не всяка организация има постоянен брой минути на рунд, така че не мога да направя колона за secondsPerRound
. Така че изглежда, че трябва да създам отделна таблица, която проследява всички възможни комбинации от кръгове/минути... пример fight_rounds_types
таблица:
id organization_id num_rounds
1 9 5
2 10 3
и таблица за съпоставяне на minutes_rounds?
id fight_rounds__types_id round_num mins
1 1 1 5
2 1 2 5
3 1 3 5
4 1 4 5
5 1 5 5
6 2 1 10
7 2 2 5
8 2 3 5
След това с този тип fights
схема на таблица:
CREATE TABLE `fights` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`event_id` int(10) unsigned DEFAULT NULL,
`winner_id` int(10) unsigned DEFAULT NULL,
`referee_id` int(10) unsigned DEFAULT NULL,
`championship_match` enum('1','0') DEFAULT '0',
`weight_class` int(10) unsigned DEFAULT NULL,
`finish_id` int(10) unsigned DEFAULT NULL,
`loser_id` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `w` (`winner_id`),
KEY `e` (`event_id`),
KEY `f` (`finish_id`),
KEY `l` (`loser_id`),
CONSTRAINT `l` FOREIGN KEY (`loser_id`) REFERENCES `fighters` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `e` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `f` FOREIGN KEY (`finish_id`) REFERENCES `finishes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `w` FOREIGN KEY (`winner_id`) REFERENCES `fighters` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8
Мога да добавя външен ключ към fight_rounds
id и за нещата, които искам да проследя:
- минута, ако битката приключи
- рунд, ако битката приключи
Бих направил колона tinyint, round_ended
, която може да бъде NULL, както и колона time_ended
, и препратка към чужд ключ, fight_rounds_types_id
, която ще указва вида на правилата за минути/кръгове, които да се използват.
Въпросите ми са:
- Моята схема за
fight_rounds_types
иminutes_rounds
идеална ли е по отношение на нормализирането? Или има по-добър начин да проектирам това? - Какъв тип колона мога да използвам за колона
time_ended
? Искам да проследя, да речем,2:14
. В крайна сметка използвахTIME
за сега, това идеално ли е?