好的,我是SQL等新手,所以如果这是完全错误的话,请道歉。
我设计了一个ER模型,我觉得这是正确的,我正在尝试将其转换为关系模型,并希望有任何关于我在转换它或任何提示时出错的建议。绞尽脑汁。
我相信..
1-1关系 实体可以组合使用,也可以将一个实体类型的主键作为外键放在另一个关系中。
1-m关系 来自“一边”的主要关键词被放在许多方面作为外键。
m-n关系 创建一个新关系,每个实体的主键形成一个复合键。
多值属性 创建一个新表,从第一个表使用的主键和在第二个表中使用的属性alognside主键。
所以,我的关系模型,粗体PK,斜体字FK
USER: USERID FNAME LNAME USERNAME密码USERTYPE电子邮件
CUSTOMER: USERID , CUST_ID ,BIO
ADMIN: USERID ADMIN_ID
ARTIST USERID , ARTIST_ID ,BIO REC_ID
PRODUCER: PROD_ID ,姓名,电子邮件
记录标签: RECORD_ID ,NAME,DESCRIPTION
ALBUM: ALBUMID NAME,COST,TITLE,NOOFSONGS
TRACK: 跟踪ID ,NAME,COST,TITLE,DESCRIPTION
TRACK REVIEW:TREND SO TRACK ID依赖于此表= REVIEW_ID(PK), TRK_ID(PK) NAME
TRACK PURCHASE TABLE(USER id作为外键进入此表) TrackPuchaseID user_id ,日期
ALBUM PURCHASE TABLE AlbumPuchaseID user_id ,日期,数量
GENRE TABLE?: 不确定??
BPM:是多值的属性所以becoems分隔表所以它 GenreID BPM
我知道这一切都可能是错的。但任何帮助都会很棒..解释应该是FK或复合PK等,或者我缺少哪些表格。
答案 0 :(得分:0)
album purchase
,您应该:user_id
,date
,album_id
。track purchase
我不明白为什么你关心quantity
和track_id
您错过了review
。track
,album
,user
,date
都应包含last_update_date
。威力
将artist
添加到customer
也很有意思
和review
。user_id
应包含Invoice
。我猜还剩下其他的事了。您需要一个Invoice_Purchase
/ Invoice
表来表示"客户xyz购买了商品1,2,3,4 ......",它应该是这样的:
表Invoice_Purchase
表status
也许您还应该在您的albuns和曲目中添加Navicat
,这样您就可以设置是否可以购买商品。是的,你不应该删除它们,因为你将旧的发票转发给它......
无论如何,你应该考虑以后使用像{{1}}之类的软件来绘制关系部分并部署你的数据库。
答案 1 :(得分:0)
从最初看,这是我的一些印象,没有特别的顺序。
这应该会让你忙碌一段时间。