AIO Card System v0.3 7テーブル物理設計 正本
AIO Card System v0.3 7テーブル物理設計 正本
状態:この内容でSQLに制作済み。
本ページは、AIO Card System v0.3 の7テーブル物理設計に関する正本である。
CREATE TABLE aio_invites (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
invite_id VARCHAR(64) NOT NULL,
status VARCHAR(32) NOT NULL DEFAULT 'active',
is_enabled TINYINT UNSIGNED NOT NULL DEFAULT 1,
expires_at DATETIME NULL DEFAULT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY (invite_id)
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4;
CREATE TABLE aio_intakes (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
invite_db_id BIGINT UNSIGNED NOT NULL,
input_method VARCHAR(32) NOT NULL DEFAULT 'self',
status VARCHAR(32) NOT NULL DEFAULT 'not_started',
started_at DATETIME NULL DEFAULT NULL,
last_saved_at DATETIME NULL DEFAULT NULL,
submitted_at DATETIME NULL DEFAULT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY (invite_db_id),
FOREIGN KEY (invite_db_id)
REFERENCES aio_invites (id)
ON UPDATE CASCADE
ON DELETE RESTRICT
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4;
CREATE TABLE aio_intake_values (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
intake_id BIGINT UNSIGNED NOT NULL,
slot_group VARCHAR(32) NOT NULL,
slot_key VARCHAR(100) NOT NULL,
value LONGTEXT NOT NULL,
value_type VARCHAR(32) NOT NULL DEFAULT 'text',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY (intake_id, slot_group, slot_key),
FOREIGN KEY (intake_id)
REFERENCES aio_intakes (id)
ON UPDATE CASCADE
ON DELETE CASCADE
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4;
CREATE TABLE aio_intake_links (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
intake_id BIGINT UNSIGNED NOT NULL,
link_key VARCHAR(100) NOT NULL,
link_label VARCHAR(255) NULL DEFAULT NULL,
url TEXT NOT NULL,
link_role VARCHAR(100) NULL DEFAULT NULL,
related_group VARCHAR(32) NULL DEFAULT NULL,
related_key VARCHAR(100) NULL DEFAULT NULL,
source_note TEXT NULL DEFAULT NULL,
sort_order INT UNSIGNED NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
FOREIGN KEY (intake_id)
REFERENCES aio_intakes (id)
ON UPDATE CASCADE
ON DELETE CASCADE
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4;
CREATE TABLE aio_cards (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
card_id VARCHAR(64) NOT NULL,
read_id VARCHAR(64) NOT NULL,
source_intake_id BIGINT UNSIGNED NULL DEFAULT NULL,
status VARCHAR(32) NOT NULL DEFAULT 'draft',
reading_spec_version VARCHAR(32) NOT NULL DEFAULT 'v0.3',
published_at DATETIME NULL DEFAULT NULL,
suspended_at DATETIME NULL DEFAULT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY (card_id),
UNIQUE KEY (read_id),
UNIQUE KEY (source_intake_id),
FOREIGN KEY (source_intake_id)
REFERENCES aio_intakes (id)
ON UPDATE CASCADE
ON DELETE SET NULL
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4;
CREATE TABLE aio_card_values (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
card_id BIGINT UNSIGNED NOT NULL,
slot_group VARCHAR(32) NOT NULL,
slot_key VARCHAR(100) NOT NULL,
value LONGTEXT NOT NULL,
value_type VARCHAR(32) NOT NULL DEFAULT 'text',
source_note TEXT NULL DEFAULT NULL,
is_sensitive TINYINT UNSIGNED NOT NULL DEFAULT 0,
sort_order INT UNSIGNED NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY (card_id, slot_group, slot_key),
FOREIGN KEY (card_id)
REFERENCES aio_cards (id)
ON UPDATE CASCADE
ON DELETE CASCADE
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4;
CREATE TABLE aio_card_links (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
card_id BIGINT UNSIGNED NOT NULL,
link_key VARCHAR(100) NOT NULL,
link_label VARCHAR(255) NULL DEFAULT NULL,
url TEXT NOT NULL,
link_role VARCHAR(100) NULL DEFAULT NULL,
related_group VARCHAR(32) NULL DEFAULT NULL,
related_key VARCHAR(100) NULL DEFAULT NULL,
source_note TEXT NULL DEFAULT NULL,
sort_order INT UNSIGNED NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
FOREIGN KEY (card_id)
REFERENCES aio_cards (id)
ON UPDATE CASCADE
ON DELETE CASCADE
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4;