25 lines
1.1 KiB
MySQL
25 lines
1.1 KiB
MySQL
|
|
-- Purchase task configurations
|
||
|
|
CREATE TABLE purchase_configs (
|
||
|
|
id SERIAL PRIMARY KEY,
|
||
|
|
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX idx_purchase_configs_user_id ON purchase_configs(user_id);
|
||
|
|
|
||
|
|
-- Purchase config board/group associations
|
||
|
|
CREATE TABLE purchase_config_boards (
|
||
|
|
id SERIAL PRIMARY KEY,
|
||
|
|
purchase_config_id INTEGER NOT NULL REFERENCES purchase_configs(id) ON DELETE CASCADE,
|
||
|
|
board_id INTEGER NOT NULL REFERENCES shopping_boards(id) ON DELETE CASCADE,
|
||
|
|
group_name VARCHAR(255),
|
||
|
|
UNIQUE (purchase_config_id, board_id, group_name)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX idx_purchase_config_boards_config_id ON purchase_config_boards(purchase_config_id);
|
||
|
|
CREATE INDEX idx_purchase_config_boards_board_id ON purchase_config_boards(board_id);
|
||
|
|
|
||
|
|
-- Add purchase_config_id to tasks
|
||
|
|
ALTER TABLE tasks ADD COLUMN purchase_config_id INTEGER REFERENCES purchase_configs(id) ON DELETE SET NULL;
|
||
|
|
CREATE INDEX idx_tasks_purchase_config_id ON tasks(purchase_config_id);
|