Edw*_*win 3 database database-design
假设我有以下表格:Customer和Staff.
Customer (CusID, CusName, CusAddres, CusGender)
Staff (StaID, StaName, StaAddress, StaGender)
Run Code Online (Sandbox Code Playgroud)
VS
Customer(ID, Name, Address, Gender)
Staff(ID, Name, Address, Gender)
Run Code Online (Sandbox Code Playgroud)
哪种设计更受欢迎?为什么?
SQL采用一种称为域名完整性的概念,这意味着对象的名称具有其容器给定的范围.
列名必须是唯一的,但仅限于包含列的表的上下文中.表名必须是唯一的,但仅限于包含表的架构的上下文等.
查询列时,需要引用您感兴趣的模式,表和列,除非可以推断出其中的一个或多个.除非您的查询非常简单以至于它只引用一个表,否则您将需要直接引用表名或使用别名,例如来自Customer C的Customer.ID或C.ID等.
第一个选项是对所有列名称唯一性的技术要求的回归,这些列名称适用于旧的ISAM数据库以及20世纪60年代和70年代的COBOL等语言.在20世纪80年代,这种情况在没有任何理由的情况下被拖入了dBase,并且已经成为关系和对象DBMS时代的常规. 抵制这个过时的惯例.
第二种方法更简单,更易读.更简单,更易读的代码更易于编写,更易于维护.