作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要为在线音乐流媒体服务创建一个数据模型,其中有 4 个表:付款、用户、歌曲、流派。
我上传了结构图像,它突出显示了表和相应关联实体之间的关系。 (对链接表示歉意,我还不能发布图片)
模型必须确保外键有效并且引用完整性成立。
我尝试创建数据模型,并分配相应的外键,但作为一个完全的初学者,我不确定我是否正确创建了数据模型,最重要的是创建了正确的外键关系,因此我可以添加和检索数据。
有人愿意检查我的代码吗?谢谢:)
付款表
CREATE TABLE Payment (
PayID INTEGER,
PayName CHAR (40),
Primary Key (PayID)
);
歌曲表
CREATE TABLE SONG (
SongID Integer,
Title VARCHAR (40),
Album VARCHAR (30),
Duration TIME,
ReleaseYear DATE,
PRIMARY KEY (SongID)
);
类型表
CREATE TABLE GENRE (
GenreID Integer,
Name CHAR(35),
Description VARCHAR (200),
PRIMARY KEY (GenreID),
CONSTRAINT foreinkey_holds_UserID FOREIGN KEY (UserID)
REFERENCES USER(UserID),
CONSTRAINT foreignkey_holds_GenreID FOREIGN KEY (GenreID)
REFERENCES Genre(GenreID)
);
用户表
CREATE TABLE Users (
UserID INTEGER,
UserFirst CHAR (40),
UserLast CHAR (40),
UserName VARCHAR (40),
UserAddress VARCHAR (35),
UserBirthdate DATE(),
UserGender CHAR (1),
UserEmail VARCHAR (35),
PRIMARY KEY (UserID),
CONSTRAINT foreignkey_holds_PayID FOREIGN KEY (PayID)
REFERENCES Payment(PayID),
CONSTRAINT foreignkey_holds_SongID FOREIGN KEY (SongID)
REFERENCES Song(SongID)
);
最佳答案
付款表
CREATE TABLE Payment (
PayID INTEGER,
PayName CHAR (40),
Primary Key (PayID)
);
类型表
CREATE TABLE GENRE (
GenreID Integer,
Name CHAR(35),
Description VARCHAR (200),
PRIMARY KEY (GenreID)
);
歌曲表(歌曲和流派之间的多对一)
CREATE TABLE SONG (
SongID Integer,
GenreID Integer,
Title VARCHAR (40),
Album VARCHAR (30),
Duration TIME(),
ReleaseYear DATE(),
PRIMARY KEY (SongID),
CONSTRAINT foreignkey_holds_GenreID FOREIGN KEY (GenreID)
REFERENCES Genre(GenreID)
);
用户表
CREATE TABLE Users (
UserID INTEGER,
UserFirst CHAR (40),
UserLast CHAR (40),
UserName VARCHAR (40),
UserAddress VARCHAR (35),
UserBirthdate DATE(),
UserGender CHAR (1),
UserEmail VARCHAR (35),
PRIMARY KEY (UserID)
);
用户和歌曲之间,多对多关系。所以你需要一个关联表。最好在这个表上有复合主键(PRIMARY KEY (UserID,SongID))
CREATE TABLE Users_Song (
UserID INTEGER,
SongID Integer,
PRIMARY KEY (UserID,SongID),
CONSTRAINT fk_users_song_user FOREIGN KEY (UserID)
REFERENCES Users(UserID),
CONSTRAINT fk_users_song_song FOREIGN KEY (SongID)
REFERENCES SONG(SongID)
);
再次强调,支付和用户之间是多对多的关系。所以你需要另一个关联表。该表上还有一个复合主键(PRIMARY KEY (UserID,PayID))
CREATE TABLE Users_Payment (
UserID INTEGER,
PayID INTEGER,
PRIMARY KEY (UserID,PayID),
CONSTRAINT fk_users_payment_user FOREIGN KEY (UserID)
REFERENCES Users(UserID),
CONSTRAINT fk_users_payment_pay FOREIGN KEY (PayID)
REFERENCES Payment(PayID)
);
关于mysql - 如何为以下数据模型创建表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48760362/
我是一名优秀的程序员,十分优秀!