在數據庫中,有一個名為的表decks
,如下所示:
ID | Name
------------
1 | Deck 1
2 | Deck 2
3 | Deck 3
然後另一個名為的表words
應該看起來像這樣
Deck ID | Word ID | Text
-------------------------------
1 | 1 | Cat
2 | 1 | Elephant
1 | 2 | Dog
1 | 3 | Elephant
3 | 1 | Shark
所以基本上這個表應該有一個指向甲板的外鍵,然後是一個根據外鍵設置為自動遞增的鍵。另外請注意,此表的ID將是組合Deck Id
和Word Id
。這在 MYSQL 8 中可能嗎?
基本上我所擁有的是這樣的:
CREATE TABLE my_db.words (
deck_id INT,
text VARCHAR(100),
FOREIGN KEY(deck_id) REFERENCES decks(id)
);
但不知道如何創建這個自增字段。
不確定它是否重要,但文本列在此生成的 ID 的結果中應該沒有任何影響。
保留3張桌子。完全標準化。
表 1 - 甲板 表 2 - 字 表 3 - 甲板_字
創建表 1
CREATE TABLE my_db.deck (
id INT NOT NULL AUTO INCREMENT,
name VARCHAR(100),
PRIMARY KEY(id)
);
創建表 2
CREATE TABLE my_db.word (
id INT NOT NULL AUTO INCREMENT,
text VARCHAR(100),
PRIMARY KEY(id)
);
創建表 3
CREATE TABLE my_db.deck_word (
deck_id INT NOT NULL,
word_id INT NOT NULL,
FOREIGN KEY(deck_id) REFERENCES deck(id),
FOREIGN KEY(word_id) REFERENCES word(id),
PRIMARY KEY(deck_id, word_id)
);
據此,單詞和牌組都將通過具有復合主鍵的deck_word 表連接起來
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句