我有下面的表,我想知道如何知道如何知道主鍵,超級鍵和候選鍵。小學,考生和超級密鑰
我知道候選鍵是超級鍵的最小值。
這是正確的主鍵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');
(PlaceId,CountyId)不是關鍵,因爲有2行具有相同的值。 CountyId是否屬於關鍵字取決於它是否在功能上依賴於PlaceId(它看起來是基於4個樣本行,但可能並不普遍)。 –
我不會使用這些列中的任何一個作爲鍵,'varchar(45)'ouch!我爲每個地方,國家和與會者創建新表格,然後使用每個新表格的int pk將FK返回到此訪問表格。你似乎有int值的參加者,爲什麼使用varchar(45)呢? –