이 테이블을 사용해야하는 다른 테이블에서 사용하는 테이블입니다. 따라서, 많은 양의 사용을 상상해보십시오.MySql - 외래 키 제약 조건이있는`SortOrder` 테이블 만들기?
delimiter $$
CREATE TABLE `sortorder` (
`sortOrderId` int(11) NOT NULL AUTO_INCREMENT,
`sortOrder` tinyint(4) NOT NULL,
PRIMARY KEY (`sortOrderId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$
이 테이블이로드되는 모든 것을 처리 할 수 있도록하려면 무엇이 필요합니까? 나는 메뉴의 10 개 탭 또는 5 개 썸네일 이미지 등이있는 경우
난 단지 예를 들어 sortOrder
에 대한 tinyint datatype
를 필요로 상상할 수있는, 당신은 우리가 여기에 큰 INT의 데이터 유형을 필요가 없을 것입니다 볼 수 있습니다.
내가 배워야 할 다른 것은이 테이블에 외래 키 제약 조건을 설정 한 것입니다.
예를 들어 image
테이블이 sortOrderId
인 레코드를 삭제하는 경우 일치하는 레코드는 sortorder
테이블에서 삭제해야합니다.
어떻게 처리하나요?
ALTER TABLE의 SORTORDER 코드 :
ALTER TABLE sortorder ADD FOREIGN KEY fk_sortorder;
이 표 SORTORDER 코드를 생성 :
...
** 편집합니다 sortOrderId
열을 사용하여 image
테이블. image
테이블에서 레코드가 삭제 된 경우 sortorder
테이블에서 해당 레코드가 삭제된다는 것을 반드시 확인해야합니다.
delimiter $$
CREATE TABLE `image` (
`imageId` int(11) NOT NULL AUTO_INCREMENT,
`imageFileName` varchar(45) DEFAULT NULL,
`imagePath` varchar(255) DEFAULT NULL,
`imageTitle` varchar(100) DEFAULT NULL,
`imageAlt` varchar(100) DEFAULT NULL,
`imageWidth` int(11) DEFAULT NULL,
`imageHeight` int(11) DEFAULT NULL,
`classId` int(11) DEFAULT NULL,
`imageSizeId` tinyint(4) NOT NULL,
`isImageEnabled` bit(1) DEFAULT b'0',
`sortOrderId` int(11) DEFAULT NULL,
PRIMARY KEY (`imageId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$
외부 키를 만들고 설정하는 데 사용해야하는 ALTER TABLE 구문이 있습니까? – JoJo
@jojo foreign key? 난 당신이 단지'인덱스'를 원한다고 생각한다. http://dev.mysql.com/doc/refman/5.0/en/create-index.html 외래 키인 경우 다른 테이블을 게시해야한다. –
'CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name' - 어떤 종류의 INDEX가'sortOrder'가되어야합니까? – JoJo