目标
收集 AI 产业链相关公司的历史数据,方便查询,再在这之上做趋势预测。第一步是把证券表设计对:数据错了,后面所有分析都白做。
几个设计决定
- 主键用 UUID,不用股票代码。 代码会变:Facebook 在 2022 年从 FB 改成了 META。
- 代码只在「还在交易」的证券里唯一。 退市的代码可以被新公司重新使用,所以用部分唯一索引,只约束未退市的证券。
- 用退市日期,不用
is_active。 日期能回答「某一天有哪些股票在交易」,回测时就不会有幸存者偏差。 - ADR 规则写成约束。 ADR 必须有换股比例,非 ADR 不能有。比例用 NUMERIC,不用浮点数,因为它要参与价格换算。
- 行业和 AI 产业链分层分开存。 GICS 行业和「在 AI 价值链的哪一层」是两个维度。
原则
约束应该挡住不可能的数据,而不是挡住少见的数据。比如 ARM 的普通股不在任何交易所上市,只以 ADR 形式在 NASDAQ 交易,所以「ADR 必须有本地交易所」这条约束被删掉了。