最近的几个问题讨论了命名列的策略,我很惊讶地发现在列名中嵌入外键和主键的概念。那是
select t1.col_a, t1.col_b, t2.col_z
from t1 inner join t2 on t1.id_foo_pk = t2.id_foo_fk
我不得不承认我从来没有在任何使用这种方案的数据库系统上工作过,我想知道有什么好处。在我看来,一旦您了解了系统的 N 个主表,您将使用这些表编写多个数量级的请求。
为了提高开发效率,您需要了解哪些表是重要的表,哪些是简单的支流。您需要将大量列名提交到内存中。其中一项基本任务是将两个表连接在一起。为了减少学习工作量,最简单的做法是确保两个表中的列名相同:
select t1.col_a, t1.col_b, t2.col_z
from t1 inner join t2 on t1.id_foo = t2.id_foo
我认为,作为开发人员,您不需要过多地提醒哪些列是主键,哪些是外来的,哪些什么都不是。如果您很好奇,可以很容易地查看架构。随意看的时候
tx inner join ty on tx.id_bar = ty.id_bar
...知道哪个是外键重要吗?外键仅对数据库引擎本身很重要,以允许它确保引用完整性并在更新和删除期间做正确的事情。
这里要解决什么问题?(我知道这是一个讨论的邀请,并且可以随意这样做。但与此同时,我正在寻找答案,因为我可能真的错过了一些东西)。