数据库设计 – 数据库中的多值属性
发布时间:2020-12-12 07:45:22 所属栏目:MsSql教程 来源:网络整理
导读:如何设计关系数据库来处理多值属性? 编辑:详细说明: 我有两种方法可以做到这一点 – 尝试在字段中放置逗号分隔值,这看起来有点笨拙. 为该字段创建另一个表,并让多个值转到该字段.如果我有太多这样的字段,这可能会导致非常多的表. 问题是: 还有其他方法可
如何设计关系数据库来处理多值属性?
编辑:详细说明: 我有两种方法可以做到这一点 – >尝试在字段中放置逗号分隔值,这看起来有点笨拙. 问题是: >还有其他方法可以解决这个问题吗? 提前致谢 解决方法在传统的关系数据库设计中,每一行和每一行都是列必须只存储一个值.不要存储以逗号分隔的列表或任何古怪的东西. 例如,运动队有七名成员.你可以这样做: CREATE TABLE team ( team_id INT PRIMARY KEY,team_name VARCHAR(50),team_members VARCHAR(200) ); INSERT INTO team VALUES (1,'Dwarfs','Sleepy,Dopey,Sneezy,Happy,Grumpy,Doc,Bashful') 但最好这样做: CREATE TABLE team ( team_id INT PRIMARY KEY,); INSERT INTO team (team_name) VALUES ('Dwarfs'); CREATE TABLE team_members ( team_id INT,member_name VARCHAR(20),FOREIGN KEY (team_id) REFERENCES team(team_id) ); INSERT INTO team_members VALUES (LAST_INSERT_ID(),'Sleepy'),(LAST_INSERT_ID(),'Dopey'),'Sneezy'),'Happy'),'Grumpy'),'Doc'),'Bashful'); nb:LAST_INSERT_ID()是一个MySQL函数.其他品牌的数据库也提供类似的解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |