41 lines
1.5 KiB
MySQL
41 lines
1.5 KiB
MySQL
|
DROP TABLE IF EXISTS Cts_times;
|
||
|
CREATE TABLE Cts_times(
|
||
|
mapid TEXT,
|
||
|
gametype TEXT,
|
||
|
trank INT,
|
||
|
tvalue INT,
|
||
|
PRIMARY KEY (mapid, gametype, trank),
|
||
|
FOREIGN KEY (mapid, gametype, trank) REFERENCES Cts_ranks(mapid, gametype, idrank)
|
||
|
);
|
||
|
DROP TABLE IF EXISTS Cts_ranks;
|
||
|
CREATE TABLE Cts_ranks(
|
||
|
mapid TEXT,
|
||
|
gametype TEXT,
|
||
|
idrank INT,
|
||
|
idvalue TEXT,
|
||
|
PRIMARY KEY (mapid, gametype, idrank)
|
||
|
);
|
||
|
DROP TABLE IF EXISTS Id2alias;
|
||
|
CREATE TABLE Id2alias(
|
||
|
rtype TEXT,
|
||
|
cryptokey TEXT,
|
||
|
alias TEXT,
|
||
|
PRIMARY KEY (cryptokey)
|
||
|
);
|
||
|
|
||
|
-- These table fields are unaltered.
|
||
|
-- Exerpts from source/qcsrc/race.qc
|
||
|
-- // player improved his existing record, only have to iterate on ranks between new and old recs
|
||
|
-- for (i = prevpos; i > newpos; --i)
|
||
|
-- {
|
||
|
-- db_put(ServerProgsDB, strcat(map, rr, "time", ftos(i)), ftos(race_readTime(map, i - 1)));
|
||
|
-- db_put(ServerProgsDB, strcat(map, rr, "crypto_idfp", ftos(i)), race_readUID(map, i - 1));
|
||
|
-- }
|
||
|
-- ....
|
||
|
-- // store new time itself
|
||
|
-- db_put(ServerProgsDB, strcat(map, rr, "time", ftos(i)), ftos(race_readTime(map, i - 1)));
|
||
|
-- db_put(ServerProgsDB, strcat(map, rr, "crypto_idfp", ftos(i)), race_readUID(map, i - 1));
|
||
|
|
||
|
-- re: foreign key from & to Cts_ranks & Id2alias.
|
||
|
-- An ranked unregistered player will have a row in Cts_ranks, but will not have a row in Id2alias.
|
||
|
-- A registered player may have a row in Id2alias, but may not necessary have a rank.
|