【问题标题】:MySQL: Unique groupedMySQL:唯一分组
【发布时间】:2014-03-16 15:51:30
【问题描述】:

我在设计数据库时遇到问题,不知道如何解决:

我有下表(相关列):

CREATE TABLE IF NOT EXISTS `prmgmt_tasks` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(300) NOT NULL,
  `project_id` int(11) NOT NULL,
);

我想要的:每个任务都有一个唯一的 ID(自动增量)。任务的名称不是唯一的,但对于每个项目来说应该是唯一的。例如,“设计用户界面”可以在 ID 为 1 和 2 的项目中出现,但在 ID 为 1 的项目中不会出现两次。类似于“unique for: group by project_id”。

当然,我可以在每个查询中检查这一点,但我正在寻找一种在数据库中对此建模的方法,因此无论执行什么查询,它都将始终保持一致。

感谢您的帮助!

【问题讨论】:

    标签: php mysql group-by unique


    【解决方案1】:

    在组合字段上创建唯一的复合索引。

    CREATE UNIQUE INDEX tasks_name_project
    ON prmgmt_tasks (name, project_id);
    

    【讨论】:

      猜你喜欢
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多