【发布时间】:2021-11-02 05:06:07
【问题描述】:
在创建表时,我需要建议,根据条件创建不同的字段。我对 psql 很陌生,所以我真的不知道我是否走对了路,如果有任何提示/建议,我将不胜感激!
目前我有一个表格来表示meeting_note,它可以是录音或文本。
当会议记录为text 类型时,它必须有一个meeting_content,并且可以有一个可选的meeting_summary。 audio_source 应该为空。
当会议记录是audio 类型时,它必须有一个audio_source 并且字段meeting_content 和meeting_summary 应该为空。
我还在考虑创建两个表 - 一个用于类型音频,另一个用于文本,但 created_at 上有一个 unique 约束,它表示像 5 月 11 日这样的日期。我不确定如何在两个表之间添加此约束。
这里是表meeting_note的字段
id serial PRIMARY KEY,
meeting_id integer REFERENCES meeting(id),
meeting_note_type enum('audio', 'text') NOT NULL,
meeting_content text,
summary varchar(255),
created_at varchar(10) NOT NULL,
recording_source varchar(255)
和约束:
UNIQUE (to_char(created_at, 'YYYY-MM-DD')),
CHECK (NOT (meeting_note_type = 'text' AND meeting_content IS NULL)),
CHECK (NOT (meeting_note_type = 'audio' AND audio_source IS NULL)),
CHECK (NOT (meeting_content IS NULL AND audio_source IS NULL),
CHECK (NOT (meeting_content IS NOT NULL AND audio_source IS NOT NULL),
CHECK (NOT (audio_source IS NOT NULL AND summary IS NOT NULL))
感谢您对此的任何帮助。提前非常感谢您!
【问题讨论】: