首页 / PHP / php – 数据库设计:外键和规范化
php – 数据库设计:外键和规范化
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 数据库设计:外键和规范化,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1614字,纯文字阅读大概需要3分钟。
内容图文
![php – 数据库设计:外键和规范化](/upload/InfoBanner/zyjiaocheng/900/74261d38d70642db8bdf740dee587fe2.jpg)
我是数据库设计的新手,所以请耐心等待.我正在使用PHP和MySQL.
我有一个’电影’表,其中包含有关电影的一些细节.这包括流派,其具有(如果我理解的话)与电影的多对多关系,暗示单个电影可以属于不同类型并且单个类型可以属于不同电影.
从我收集的关于数据库设计的内容来看,将这种关系存储在一个表中并不是一个好主意,因为它会违反First Normal表单或Second Normal表单规则.
我如何设计表格以避免这种情况;我是否必须单独为每个类型创建一个表格或……?
这引出了我的下一个问题:单独的表需要有外键来识别哪些信息属于哪一行.从理论上讲,如果我有一个唯一的键来识别每部电影,然后我想用它来在一个单独的表中识别一个导演,我将如何在MySQL中创建这种关系?
感谢您的时间 – 如果我有任何不清楚的地方请告诉我,我会尽力澄清.
解决方法:
This includes genres, which have an (if I understand correctly) many
to many relationship with movies, implying a single movie can belong
to different genres and a single genre can belong to different movies.
那就对了.
From what I gather about database design, storing this kind of
relationship in one table is not a good idea
对.你正沿着这些方向寻找松散的东西.
create table movies (
movie_id integer primary key
-- other columns
);
create table genres (
genre varchar(15) primary key
-- other columns?
);
create table movie_genres (
movie_id integer not null,
genre varchar(15) not null,
primary key (movie_id, genre),
foreign key (movie_id) references movies (movie_id),
foreign key (genre) references genres (genre)
);
对于导演,假设每部电影只有一个导演,你可以使用它而不是上面的电影表
create table movies (
movie_id integer primary key,
director_id integer not null,
foreign key (director_id) references directors (director_id) -- not shown.
-- other columns
);
内容总结
以上是互联网集市为您收集整理的php – 数据库设计:外键和规范化全部内容,希望文章能够帮你解决php – 数据库设计:外键和规范化所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。