Excerpts from Matt Riedemann's message of 2015-11-20 10:58:55 -0800: > > On 11/20/2015 10:19 AM, Alexis Lee wrote: > > We just had a fun discussion in IRC about whether foreign keys are evil. > > Initially I thought this was crazy but mordred made some good points. To > > paraphrase, that if you have a scale-out app already it's easier to > > manage integrity in your app than scale-out your persistence layer. > > > > Currently the Nova DB has quite a lot of FKs but not on every relation. > > One example of a missing FK is between Instance.uuid and > > BandwidthUsageCache.uuid. > > > > Should we drive one way or the other, or just put up with mixed-mode? > > For the record, I hate the mixed mode. > > > > > What should be the policy for new relations? > > I prefer consistency, so if we're adding new relationships I'd prefer to > see that they have foreign keys. >
If FedEx preferred consistency over efficiency, then they'd only just now be able to exist due to drones being available. Otherwise they'd have to have had a way to cover the last mile of delivery using some sort of air travel, to remain consistent. What I'm saying is, sometimes you need a recommissioned 727 to carry your package, and sometimes you need a truck. Likewise, there are times when de-normalization is called for. As I said in my other reply to Mr. Bayer, we don't really know that this is that time, because we aren't measuring. However, if it seems like a close call when speculating, then it is probably prudent to remain consistent with most other things in the system. __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev