主キーは一意でなければならないことはわかっています。しかし、郵便番号が住所テーブルの主キーである不動産会社のデータベースを作成しています。しかし、不動産が販売/賃貸用であり、アパートのブロックにある場合、多くの不動産は同じ郵便番号を持ちます. PostCode を PK として保持しながら、Not Uniqe にするにはどうすればよいですか? ありがとう
これまでの私のコード:
CREATE TABLE `Properties` (
`PropertyID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`Property Type` varchar(20) NOT NULL,
`PostCode` varchar(8) NOT NULL,
`Bedrooms` tinyint(2) DEFAULT NULL,
`Bathrooms` tinyint(2) DEFAULT NULL,
`Ensuite` tinyint(1) DEFAULT NULL,
`Kitchen` tinytext,
`LivingRoom` tinytext,
`DiningRoom` tinytext,
`UtilityRoom` tinytext,
`Conservatory` tinytext,
`Garage` tinytext,
`Garden` tinytext,
`Furnished` tinytext,
`Type` char(15) NOT NULL,
PRIMARY KEY (`PropertyID`),
KEY `Property Type` (`Property Type`),
KEY `PostCode` (`PostCode`),
CONSTRAINT `Properties_ibfk_2` FOREIGN KEY (`PostCode`) REFERENCES `Address` (`PostCode`),
CONSTRAINT `Properties_ibfk_1` FOREIGN KEY (`Property Type`) REFERENCES `PropertyType` (`Property Type`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `Address` (
`PostCode` varchar(8) NOT NULL,
`HouseN` text NOT NULL,
`AddL1` varchar(25) NOT NULL,
`AddL2` varchar(25) DEFAULT NULL,
`AddL3` varchar(25) DEFAULT NULL,
`County` char(20) NOT NULL,
PRIMARY KEY (`PostCode`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1