如何设计关系数据库来处理多值属性?
编辑:详细说明:
>尝试在字段中放置逗号分隔值,这看起来有点笨拙.
>为该字段创建另一个表,并让多个值转到该字段.如果我有太多这样的字段,这可能会导致非常多的表.
问题是:
>还有其他方法可以解决这个问题吗?
>以上两种方法中哪一种一般使用?
提前致谢
解决方法
在传统的关系数据库设计中,每一行和每一行都是列必须只存储一个值.
不要存储以逗号分隔的列表或任何古怪的东西.
例如,运动队有七名成员.你可以这样做:
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');
原文地址:https://www.jb51.cc/mssql/76472.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。