asf*_*adf 3 mysql sql-server database-design
我已经阅读了许多有关数据库表设计的帖子,这些帖子适用于常见的一对多/用户对朋友场景。一个帖子包括以下内容:
用户
Run Code Online (Sandbox Code Playgroud)* user_id (primary key) * username朋友们
Run Code Online (Sandbox Code Playgroud)* user_id (primary key, foreign key to USERS(user_id)) * friend_id (primary key, foreign key to USERS(user_id))>这将阻止重复项(IE:1,2)的发生,但不会停止冲销,因为(2,1)有效。您需要一个触发器来强制关系只有一个实例...
粗体部分促使我提出以下问题:SQL Server和MySQL处理这些类型的组合键之间有区别吗?为了确保唯一性,两者是否都需要张贴者提及的触发器?
我问,因为到目前为止,我一直在SQL Server中使用类似的表结构,而没有任何此类触发器。我是否幸运地没有碰到这种潜伏在草丛中的数据复制蛇?
是的,所有DBMS都会一视同仁。原因是DBMS假定该列具有含义。即,元组不是由无意义的数字组成。每个属性都有含义。user_id假定与...具有不同含义friend_id。因此,设计者有责任建立一个规则,声称1,2等于2,1。