Simplify aime_player schema
This commit is contained in:
+3
-29
@@ -1,35 +1,9 @@
|
||||
create table "aime_shop" (
|
||||
"id" integer primary key not null,
|
||||
"ext_id" integer not null,
|
||||
"name" text not null,
|
||||
"region" text not null,
|
||||
constraint "aime_shop_uq" unique ("ext_id")
|
||||
);
|
||||
|
||||
create table "aime_machine" (
|
||||
"id" integer primary key not null,
|
||||
"shop_id" integer not null
|
||||
references "aime_shop"("id"),
|
||||
"pcb_id" text not null,
|
||||
"keychip_id" text not null,
|
||||
constraint "aime_machine_pcb_id_uq" unique ("pcb_id"),
|
||||
constraint "aime_machine_keychip_id_uq" unique ("keychip_id")
|
||||
);
|
||||
|
||||
create table "aime_player" (
|
||||
"id" integer primary key not null,
|
||||
"ext_id" integer not null,
|
||||
"register_time" timestamp not null,
|
||||
constraint "aime_player_uq" unique ("ext_id")
|
||||
);
|
||||
|
||||
create table "aime_card" (
|
||||
"id" integer primary key not null,
|
||||
"player_id" integer not null
|
||||
references "aime_player"("id")
|
||||
on delete cascade,
|
||||
"nfc_id" text not null,
|
||||
"luid" text not null,
|
||||
"register_time" timestamp not null,
|
||||
"access_time" timestamp not null,
|
||||
constraint "aime_card_uq" unique ("nfc_id")
|
||||
constraint "aime_player_ext_id_uq" unique ("ext_id"),
|
||||
constraint "aime_player_luid_uq" unique ("luid")
|
||||
);
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
-- Can't add NOT NULL or UNIQUE constraints as we'd like to. Fortunately we
|
||||
-- haven't released anything yet so there aren't really any DBs with live
|
||||
-- data out there in the wild.
|
||||
|
||||
-- (Can't drop and recreate the table either btw because "aime_player" is
|
||||
-- transitively referenced by _literally everything_).
|
||||
|
||||
alter table "aime_player" add column "luid" text;
|
||||
alter table "aime_player" add column "access_time" text;
|
||||
|
||||
update "aime_player" as "p"
|
||||
set "luid" = (
|
||||
select "c"."nfc_id"
|
||||
from "aime_card" as "c"
|
||||
where "c"."player_id" = "p"."id"
|
||||
),
|
||||
"access_time" = (
|
||||
select "c"."access_time"
|
||||
from "aime_card" as "c"
|
||||
where "c"."player_id" = "p"."id"
|
||||
);
|
||||
|
||||
drop table "aime_card";
|
||||
|
||||
-- These were never used. Re-create them if they become necessary.
|
||||
drop table "aime_machine";
|
||||
drop table "aime_shop";
|
||||
Reference in New Issue
Block a user