36451a613d
- Added comprehensive technical design document for AI Brand Monitoring System V5, outlining system architecture, data models, sampling strategies, and monitoring protocols. - Key changes include a shift to a sampling-based trend monitoring approach, updated data collection and storage strategies, and new metrics for performance evaluation. - Implemented migration scripts to support the flattening of brand questions and versioning of question texts, ensuring historical data integrity and version control.
38 lines
1.1 KiB
SQL
38 lines
1.1 KiB
SQL
ALTER TABLE brand_questions
|
|
ADD COLUMN IF NOT EXISTS current_version_id BIGINT;
|
|
|
|
CREATE TABLE IF NOT EXISTS brand_question_versions (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
question_id BIGINT NOT NULL REFERENCES brand_questions(id),
|
|
question_text TEXT NOT NULL,
|
|
question_hash VARCHAR(64) NOT NULL,
|
|
version_no INT NOT NULL,
|
|
is_active BOOLEAN NOT NULL DEFAULT true,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
CONSTRAINT uk_question_version_no UNIQUE (question_id, version_no)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_question_hash ON brand_question_versions(question_hash);
|
|
|
|
INSERT INTO brand_question_versions (question_id, question_text, question_hash, version_no, is_active)
|
|
SELECT q.id,
|
|
q.question_text,
|
|
md5(q.question_text),
|
|
1,
|
|
true
|
|
FROM brand_questions q
|
|
WHERE NOT EXISTS (
|
|
SELECT 1
|
|
FROM brand_question_versions v
|
|
WHERE v.question_id = q.id
|
|
);
|
|
|
|
UPDATE brand_questions q
|
|
SET current_version_id = v.id
|
|
FROM brand_question_versions v
|
|
WHERE v.question_id = q.id
|
|
AND v.version_no = 1;
|
|
|
|
ALTER TABLE brand_questions
|
|
DROP COLUMN IF EXISTS question_text;
|