前提・実現したいこと
以下の設計図のCREATEをどのように書くのか知りたいです。
発生している問題
設計図が以下のとき、結局CREATEはわけるのかわけないのかがわからないです。
該当の設計図
悩んでいるCREATE方法
こうして結局わけないのでしょうか?
sql
1CREATE TABLE 全社員 2( 3 `社員NO` int not null 4 ,`名前` varchar(100) not null 5 ,`年齢` varchar(100) not null 6 ,`入社年月日` datetime not null 7 ,`社員区分` varchar(100) not null 8 ,`給与ランク` varchar(10) 9 ,`月給` varchar(10) 10 ,`時給` varchar(10) 11 ,`出勤不可能曜日` varchar(10) 12 ,PRIMARY KEY (`社員NO`) 13); 14INSERT INTO 全社員 15 (`社員NO`,`名前` ,`年齢`, `入社年月日`, `社員区分`, `給与ランク`, `月給`, `時給`, `出勤不可能曜日`) 16VALUES 17 (1, '田中', '21', '2020-05-03', '正社員', 'A', '10', null, null ) 18 ,(2, '高橋', '22', '2020-05-03', 'パート・アルバイト', null, null, '20', '水' ) 19;
それともやはりわけてこう書くのでしょうか。
SQL
1CREATE TABLE 社員マスタ 2( 3 `社員NO` int not null 4 ,`名前` varchar(100) not null 5 ,`年齢` varchar(100) not null 6 ,`入社年月日` datetime not null 7 ,`社員区分` varchar(100) not null 8 ,PRIMARY KEY (`社員NO`) 9); 10INSERT INTO 社員マスタ 11 (`社員NO`,`名前` ,`年齢`, `入社年月日`, `社員区分`) 12VALUES 13 (1, '田中', '21', '2020-05-03', '正社員' ) 14 ,(2, '高橋', '22', '2020-05-03', 'パート・アルバイト' ) 15; 16 17CREATE TABLE 正社員 18( 19 `社員NO` int not null 20 ,`給与ランク` varchar(10) not null 21 ,`月給` varchar(10) not null 22 ,PRIMARY KEY (`社員NO`) 23 ,FOREIGN KEY (`社員NO`) REFERENCES 社員マスタ(`社員NO`) 24); 25INSERT INTO 正社員 26 (`社員NO`, `給与ランク`, `月給`) 27VALUES 28 (1, 'A', '10' ) 29; 30 31CREATE TABLE パート・アルバイト 32( 33 `社員NO` int not null 34 ,`時給` varchar(10) not null 35 ,`出勤不可能曜日` varchar(10) not null 36 ,PRIMARY KEY (`社員NO`) 37 ,FOREIGN KEY (`社員NO`) REFERENCES 社員マスタ(`社員NO`) 38); 39INSERT INTO パート・アルバイト 40 (`社員NO`, `出勤不可能曜日`, `出勤不可能曜日`) 41VALUES 42 (2, '20', '水' ) 43;
それとも全く違う書き方になりますか?
初心者質問ですみません。
あと、もしわけるのだとしたら「 not null を作らない方がいいから」という理由であっていますか?
MySQLバージョン情報
MySQL 5.7.29
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/03 05:58
2020/05/03 06:05