是否可以在单个表中声明非主键之间的函数依赖关系?

问题描述

让我们假设一个函数依赖:R(A,B,C,D) & FDs{ A->B,A->C,(B,C)->D }

A 可以识别任何元组。将 A 定义为主键,我们可以实现 A 和其他之间的依赖关系。但是 BC 的组合也可以唯一标识 D

CREATE TABLE `test` (
    `A` INT NOT NULL,`B` VARCHAR(100) NOT NULL,`C` VARCHAR(100) NOT NULL,`D` VARCHAR(100) NOT NULL,PRIMARY KEY (`A`) 
);

此 SQL 仅包含 A 和其他之间的依赖关系。但是这个 SQL 并没有说 B,C 也可以唯一标识 D。 是否可以在 MySQL 中使用单个表定义 B,CD 之间的依赖关系?

我认为一种方法是使用另一张桌子。 R(A,C) & FDs{ A->B,A->C } 的一张桌子。 R(B,D) & FDs{ (B,C)->D } 的另一个表。但是,我想使用单个表。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)