1

Music library MySQL databaseをたどるのに苦労した後、Foreign Keys を設定しようとして助けが必要です。アルバム、曲、ジャンル、ミュージック ビデオ、ソロ、グループの複数のテーブルがあります。特定のテーブルごとに、ID、名前、およびその他の列があります。各 ID は int(11) の主キーです。Solo および Group は、ソロ アーティストおよびグループを表します。(soloID と groupID はそれらの主キーです)

もう一度見て

それは、データベースをセットアップする方法かもしれません。


Solo
•   djuIDs – int(11)
•   profilepic – varchar(255)
•   engname – varchar(255)
•   korname – varchar(255)
•   engbn – varchar(255)
•   occupation – set
•   recordlabel – varchar(255)
•   debut  - date
•   dateofbirth – date
•   officialsite -  varchar(255)
•   sitename –varchar(255)
•   page – varchar(255)
Group
•   djuIDs – int(11)
•   profilepic – varchar(255)
•   engname – text
•   korname – text
•   members – text
•   recordlabel – varchar(255)
•   debut – date
•   officialsite -  varchar(255)
•   sitename –varchar(255)
•   page – varchar(255)
Albums
•   albumID – int(11)
•   albumpic – varchar(255)
•   albumthpic – varchar(255)
•   albumTitle – varchar(255)
•   performer – varchar(255)
•   type – set (ex: ep, sp, studio)
•   titletrack – varchar(255)
•   genre
•   releasedate – date
•   distributor – varchar(255)
•   page – varchar(255)
Songs
•   songID – int(11)
•   albumpic – varchar(255)
•   tracknum – int(11)
•   songTitle – varchar(255)
•   performer – varchar(255)
•   album – varchar(255)
•   page – varchar(255)
Music Videos
•   mvID – int(11)
•   title – varchar(30)
•   mvpic – varchar(255)
•   performer – varchar(255)
•   album – varchar(255)
•   releasedate – date
•   vURL – varchar(255)
Genres
•   genreID – int(11)
•   genreName –varchar(30)
•   information – varchar(255)

4

1 に答える 1

1

それは私の古い答えの 1 つであったと思います...INT(11)主キーとして使用した場合、外部キーの定義は次のテーブル定義のようにArtistsなりAlbumsます。

CREATE TABLE Artists (
  /* will later be defined as a FK Albums.artistid */
  id INT NOT NULL PRIMARY KEY,
  name VARCHAR(1024) NOT NULL,
  description TEXT
) ENGINE=InnoDB;

CREATE TABLE Albums (
  id INT NOT NULL PRIMARY KEY,
  artistid INT NOT NULL,
  release_date DATETIME,
  genreid INT NOT NULL,
  picture BLOB,
  FOREIGN KEY (artistid) REFERENCES Artists (id),
  FOREIGN KEY (genreid) REFERENCES Genres (id)
)  ENGINE=InnoDB;

すべての PK 列を として定義したのでINT(11)、関連するテーブルで同じデータ型を使用していることを確認してください。上記の例では、 で参照される列がとして定義されてartistid INT NOT NULLいると想定しています。 Artistsid INT NOT NULL

上記の定義では、FK 列を として作成しましたNOT NULLが、厳密には必要ありません。たとえば、NULL アーティストのアルバムを作成できます。NOT NULLその可能性があると思われる場合は、列定義のを省略できるはずです。

于 2012-05-15T01:15:16.403 に答える