0

我有下表,我想知道如何获取主键、超键和候选键。

我知道候选键是超级键的最小值。

这会是正确的主键PlaceId CountyId、候选键PlaceId, CountyId, Date和超键PlaceId, CountyId, Date, Attendees吗?

CREATE TABLE IF NOT EXISTS `visits` (
  `PlaceId` varchar(45) DEFAULT NULL,
  `CountyId` varchar(45) DEFAULT NULL,
  `Date` date NOT NULL,
  `Attendees` varchar(45) DEFAULT NULL,

INSERT INTO `visits` (`PlaceId`, `CountyId`, `Date`, `Attendees`) VALUES
('Bangor', 'Gwynedd', '2012-05-03', '34'),
('Bangor', 'Gwynedd', '2012-05-04', '24'),
('Rhyl', 'Denbighshire', '2012-05-06', '14');
4

1 回答 1

1

根据您提供的样本数据,以及我对什么地方 date参加者的含义的理解,唯一的候选键是 {PlaceId, CountyId, Date}。

由于只有一个候选键,因此该候选键也必须是主键。

所有属性的集合是一个普通的超键。所以一个超级键是 {PlaceId, CountyId, Date, Attendees}。另一个是 {PlaceId, CountyId, Date}。

于 2012-05-14T14:51:57.063 回答