0

私は MySQL を使用してデータベースを設計しています。現在、すべての列のデータ型を定義する必要がある文書化の段階にあります。各テーブルを単独で使用する場合は問題ありませんが、外部キーのデータ型を定義する方法がわからないため、1-m リレーションシップに問題があります (元のテーブルではその型が「SERIAL」であるため) -coz その主キー) しかし、それが FK の場合、SERIAL として定義することはできません。手伝って頂けますか ?

例: PUBLISHERS [出版社_ID (シリアル) | Publisher_Name ( Varchar(50) ) | 等】

本 [ Book_ID (SERIAL) | Publisher_ID (?) | Book_Price (10 進数 (5,2) ) | など】

ありがとう

4

1 に答える 1

0

SERIALin MySql は単なるエイリアスですBIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE。したがって BIGINT UNSIGNED、このようにFK列を定義するときに使用します

CREATE TABLE publishers(
publisher_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
publisher_name VARCHAR(50),
PRIMARY KEY(publisher_id)
);

CREATE TABLE books(
book_id INT NOT NULL AUTO_INCREMENT,
publisher_id BIGINT UNSIGNED,
title VARCHAR(100),
book_price DECIMAL(5,2),
PRIMARY KEY (book_id),
CONSTRAINT FOREIGN KEY (publisher_id) REFERENCES publishers (publisher_id)
);

SQLFiddle の例

于 2013-03-24T05:05:26.420 に答える