我想利用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字段 - 任何人都可以看到使用这种方法的任何问题?