server那点事
多人协作,特别是跨团队协作,有很多比较麻烦的事。
例如自己团队规范了数据库里某字段怎么存储,但是别人的团队在数据库里存了一些你不期望的值,你的程序可能运行时候会出错。
在公用的开发环境数据库里给字段加上正则匹配,是避免这个情况发生的一个比较好的办法。
例如,Rails里使用的一个反模式,多态。在表里会有一个字段叫type,一般是类名。为了防止脏数据出现,可以加上正则匹配:
ALTER TABLE your_table ADD CONSTRAINT camel_case_type CHECK (type ~ $$^[A-Z]+$$);
如果运行会报错,可能要小心了,数据库里可能已经有脏数据了,先查出脏数据,处理好再加上正则匹配。
SELECT * FROM your_table WHERE type !~ $$^[A-Z]+$$;
发表于 2019.01.21
© 自由转载 - 非商用 - 非衍生 - 保持署名