3
我有以下遺留數據庫設置:多對多關係固定
CREATE TABLE `categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`category_ids` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
)
其中category_ids
是分類的id用逗號分隔的字符串:1, 10, 15, 6
。有沒有辦法將這個數據庫轉換爲更常規的數據庫(使用三個表,一個用於存儲關係),只使用SQL,而不使用其他腳本?
我希望有一種方法來生成映射表獨立的最大數。現在它似乎工作,雖然不是最佳的,但只要它有效,誰在乎? :) – Shark 2012-03-17 14:45:14
順便說一下,我們可以使用'UNION'而不是'UNION ALL',而MySQL目前沒有'LEN'功能,那裏是'LENGTH'。 – Shark 2012-03-17 14:47:11
@Shark - Union會增加重複數據刪除的開銷。 Union All沒有。如果您不關心或需要重複數據刪除,那麼建議使用Union All。 – MatBailie 2012-03-17 23:52:15