我想利用MySQL 5.1中的新分區,但使用標準的ActiveRecord模型。我遇到的問題是,使用分區時,表上的主鍵必須包括分區功能中使用的列。 (http://dev.mysql.com/doc/refman/5.1/en/partitioning-limitations-partitioning-keys-unique-keys.html)MySQL與ActiveRecord分區
現在,我想要一個自動遞增的'id'字段(通常用作Rails中的主鍵),但我想用另一列進行分區,在這種情況下爲'task_id'。至關重要的是,我不想在我的Rails應用程序中使用複合主鍵。我的問題是這樣的:
如果我設置表如下:
"CREATE TABLE `annotations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`task_id` int(11) DEFAULT NULL,
`user_id` int(11) DEFAULT NULL,
`value` text,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`, `task_id`),
KEY `index_annotations_on_task_id` (`task_id`),
KEY `index_annotations_on_user_id` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
PARTITION BY RANGE(task_id)(
PARTITION 1_to_5 VALUES LESS THAN (6),
PARTITION 6_to_10 VALUES LESS THAN (11),
PARTITION 11_to_15 VALUES LESS THAN (16))"
在那裏我有「身份證」和「TASK_ID」列組成的主鍵,我沒有做任何事情特別是ActiveRecord模式,我是否爲未來的任何頭痛而設置自己?
基本上,我創建一個表基於兩列的主鍵,但沒有告訴ActiveRecord的關於第二列,因爲我仍然有一個自動遞增的ID字段 - 任何人都可以看到使用這種方法的任何問題?