일반적인 'SpeciesName'필드를 공유하는 두 테이블의 데이터에 액세스하려고합니다.대형 데이터 세트가있는 MySQL 관계형 데이터베이스?
'coords'테이블은 5500 개가 넘는 매우 큰 데이터 세트이며 테이블 자체에는 약 26 개의 필드가 있습니다. 이 테이블의 고유 ID는 0-5500까지 실행되는 행렬 번호이며 각 행에는 약간 고유 한 데이터가 들어 있습니다. 그러나 'SpeciesName'이 동일한 행이 여러 개 있습니다. 테이블 내에 고유 한 'SpeciesNames'만 있습니다.
표 'common'에는 3 개의 필드가있는 각 'SpeciesNames'에 대한 일반 이름과 이미지 데이터가 저장됩니다. 기본적으로 내가 뭘하려고하는지 외래 키로 'SpeciesNames'를 사용하여 두 테이블 사이의 MySQL 관계를 설정하고 둘 다 하나의 쿼리에서 데이터에 액세스합니다.
어디서부터 시작해야할까요? Google 검색은 하나 또는 두 개의 입력란을 포함하는 표를 처리 한 결과를 산출했습니다. 그러나 내가 질의 할 때, 나는 PHP에서 양쪽 테이블의 모든 필드를 선택하고 싶다. 이에 관한 조언은 훌륭합니다.
편집 : 데이터가 현재로서는 크지는 않지만 그럴 것입니다. 나는 그것에 대해 분명히해야만했다.
`Authors` varchar(500) DEFAULT NULL,
`Journal` varchar(500) DEFAULT NULL,
`YearPublication` varchar(500) DEFAULT NULL,
`DOIISBN` varchar(500) DEFAULT NULL,
`AdditionalSource` varchar(500) DEFAULT NULL,
`Ecoregion` varchar(500) DEFAULT NULL,
`GrowthType` varchar(500) DEFAULT NULL,
`GrowthFormRaunkiaer` varchar(500) DEFAULT NULL,
`NumberPopulations` varchar(500) DEFAULT NULL,
`AnnualPeriodicity` varchar(500) DEFAULT NULL,
`CriteriaSize` varchar(500) DEFAULT NULL,
`CriteriaOntogeny` varchar(500) DEFAULT NULL,
`CriteriaAge` varchar(500) DEFAULT NULL,
`Kingdom` varchar(500) DEFAULT NULL,
`Phylum` varchar(500) DEFAULT NULL,
`AngioGymno` varchar(500) DEFAULT NULL,
`DicotMonoc` varchar(500) DEFAULT NULL,
`Class` varchar(500) DEFAULT NULL,
`_Order` varchar(500) DEFAULT NULL,
`Family` varchar(500) DEFAULT NULL,
`Genus` varchar(500) DEFAULT NULL,
`SpeciesName` varchar(500) DEFAULT 'NA',
`EnteredBy` varchar(500) DEFAULT NULL,
`EnteredDate` varchar(500) DEFAULT NULL,
`Source` varchar(500) DEFAULT NULL,
`SpeciesAuthor` varchar(500) DEFAULT NULL,
`StudiedSex` varchar(500) DEFAULT NULL,
`MatrixComposite` varchar(500) DEFAULT NULL,
`MatrixTreatment` varchar(500) DEFAULT NULL,
`MatrixCaptivity` varchar(500) DEFAULT NULL,
`MatrixStartYear` varchar(500) DEFAULT NULL,
`MatrixStartSeason` varchar(500) DEFAULT NULL,
`MatrixStartMonth` varchar(500) DEFAULT NULL,
`MatrixEndYear` varchar(500) DEFAULT NULL,
`MatrixEndSeason` varchar(500) DEFAULT NULL,
`MatrixEndMonth` varchar(500) DEFAULT NULL,
`Population` varchar(500) DEFAULT NULL,
`LatDeg` varchar(500) DEFAULT NULL,
`LatMin` varchar(500) DEFAULT NULL,
`LatSec` varchar(500) DEFAULT NULL,
`LonDeg` varchar(500) DEFAULT NULL,
`LonMin` varchar(500) DEFAULT NULL,
`LonSec` varchar(500) DEFAULT NULL,
`LatitudeDec` varchar(500) DEFAULT NULL,
`LongitudeDec` varchar(500) DEFAULT NULL,
`Altitude` varchar(500) DEFAULT NULL,
`Country` varchar(500) DEFAULT NULL,
`Continent` varchar(500) DEFAULT NULL,
`MatrixSplit` varchar(500) DEFAULT NULL,
`Observation` varchar(500) DEFAULT NULL,
`MatrixClassOrganized` varchar(500) DEFAULT NULL,
`Matrixnumber` varchar(500) NOT NULL DEFAULT '',
`MatrixClassNumber` varchar(500) DEFAULT NULL,
`Dimension` varchar(500) DEFAULT NULL,
`plantType` varchar(500) DEFAULT NULL,
`matrix` varchar(15000) DEFAULT NULL,
`_ClassNames` varchar(16000) DEFAULT NULL,
`StatusStudy` varchar(500) DEFAULT NULL,
`StatusStudyRef` varchar(500) DEFAULT NULL,
`StatusElsewhere` varchar(500) DEFAULT NULL,
`StatusElsewhereRef` varchar(500) DEFAULT NULL,
PRIMARY KEY (`Matrixnumber`),
그리고 '일반적인': 나는 기본적으로 좌표를 사용에서 모든 정보를 표시하는지도를 각 기록을 세우고있어
`ID` varchar(100) NOT NULL,
`CommonName` varchar(100) NOT NULL,
`ImageUrl` varchar(200) NOT NULL,
`UploadImgUrl` varchar(100) NOT NULL,
UNIQUE KEY `SpeciesAccepted` (`ID`),
KEY `ID` (`ID`)
'이 coords'-이'좌표 '입니다 이미 성공적으로 달성되었습니다. 'common'테이블에는 각 'SpeciesName'(coords.SpeciesName 및 common.ID)에 대해 동적으로 생성 된 새로운 정보가 포함되어 있으므로 CommonName을 표시하고 'ImageUrl'및 'UploadedImgUrl'을 데이터와 함께 사용하고 싶습니다. 이전에 가지고 있었다. 나는 여전히 MySQL에 대한 약간의 초보자이므로, 나의 용어가 완벽하지 않다면 사과드립니다.
5500 레코드가 크지 않습니다. 당신의 문제/상황이 내게는 분명하지 않지만, 당신은 다분히 많은 관계가 필요하다고 생각합니다. – Peter
belive me 5500은 mysql에 대해 매우 작은 크기입니다. 예를 들어 현재 작업중인 테이블의 크기는 약 7 (7) 백만 행입니다. – hakiko
@Peter는 날이 갈수록 데이터의 성격을 고려하여 어떤 크기로 커 졌는지에 관계없이 더 많은 양의 레코드로 작동하도록하고 싶습니다. 확장 할 수 있어야하며 미래에 대비해야합니다. – user3015175