我有一個包含多個其他表的版本信息的表的MySQL DB。爲了鏈接到相同的版本系列,我有一個version_master表,它包含鏈接引用的版本系列的主鍵。我想知道是否有一個更優雅的解決方案,而不需要version_master表。在這個mysql示例中只有一列需要主表嗎?
CREATE TABLE IF NOT EXISTS `version` (
`version_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`version_master_id` int(10) unsigned NOT NULL,
`major` int(10) unsigned NOT NULL DEFAULT '0',
`minor` int(10) unsigned NOT NULL DEFAULT '0',
`patch` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`version_id`));
CREATE TABLE IF NOT EXISTS `version_master` (
`version_master_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE IF NOT EXISTS `needs_versions` (
`needs_versions_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`date_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`name` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
`description` text COLLATE utf8_unicode_ci NOT NULL,
`version_master_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`needs_versions_id`));
謝謝。 offer_type_id是複製粘貼錯誤,已更正。 needs_versions表只是幾個表的一個例子,它們都鏈接到版本表以進行版本控制。 – SystemicPlural 2010-10-17 13:10:35
我對使用多列作爲索引不是很熟悉。如何在不自動遞增version_master表的情況下快速創建新的version_master_id。 – SystemicPlural 2010-10-17 13:14:14
爲了回答我自己,我可以使用SELECT MAX(version_master_id)+ 1 FROM版本。只要它被索引,它應該非常高效。 – SystemicPlural 2010-10-17 13:22:23