这部分是一个最佳实践问题,部分是实践问题:
我创建了一个新的数据库表,它将重新传输一些旧信息(例如user_id / name,partner_application_id等)以及一些新信息(affiliate_id,transaction_id等)。我倾向于使用Postgres references
逻辑来做类似的事情:
create table transactions(
transaction_id varchar(32) primary key,
user_id serial references users(user_id),
affiliate_id varchar(32) references affiliates(affiliate_id),
partner_id varchar(32) references partners(partner_id),
...
created_on date default now()
);
我的问题是:这是一个正确/安全的事情吗?这似乎是很多参考资料,我无法在网上找到关于这是否合适的指导。也许更有意义的是不要担心引用只是因为我不必担心首先将新用户/附属机构插入各自的表中(以便处理出来的事件)由于异步性而导致的秩序)?
这里有很多依赖于其他表,但理想情况下,我宁愿抛出一个错误,因为没有定义的联盟/用户而不是有错误的数据进入系统并为可能不存在的用户记录事务。这里有任何经验法则或一般指导原则吗?