저는 회사에서 설문 조사를 만드는 데 사용하는 오래된 웹 응용 프로그램을 만들고 있습니다. 나는 mysql 명령 프롬프트를 통해 데이터베이스 스키마를 살펴 보았는데 테이블이 꽤 견고하다고 보았다. 비록 내가 DB 전문가가 아니기는하지만, 그 뒤에있는 이론에 정통합니다 (소프트웨어 엔지니어링 프로그램에서 데이터베이스 디자인 과정을 몇 개 택한 것).외래 키를 사용하지 않는 이유는 무엇입니까? [php + MySQL]
그런데 나는 create 문을 SQL 파일에 버리고 MySQL Workbench에서 가져 와서 "실제"외래 키를 사용하지 않는다는 것을 알았다. 그들은 FK를 사용하는 것처럼 다른 테이블의 기본 키를 저장하지만 키를 하나라고 선언하지는 않습니다.
그래서 내가 알고있는 것 (FK 문제 제외)을 통해 DB를 설계하는 방법을 보았습니다. 그 이유가 궁금 할 때가 있습니다. 이것은 게으른 프로그래밍의 경우입니까, 아니면 모든 오류 검사를 프로그래밍 방식으로 수행하여 성능을 향상시킬 수 있습니까?
예제를 원할 경우 기본적으로 설문 조사가 있고 설문 조사에는 일련의 질문이 있습니다. 질문은 설문 조사의 일부이므로 열이 PK인지 확인합니다. 그것은 꽤 많이 있지만 그들은 모든 곳에서 그것을 사용합니다.
나는이 질문에 옳고 그른 대답이 없을지 모르지만 나는이 시스템이 꽤 견고 해져서 왜이 일을 할 것인지에 대한 정보를 찾고있다. 우리는 그것을 사용하기 시작했기 때문에이 사람들은 자신이하는 일을 알고 있다고 믿었습니다.)
정확히 그대로입니다. 나는 종이에 무언가를 디자인 할 수 있을지 모르지만 나는 실무 부서에서 확실히 부족하다. 덕분에 많은 사람들 :) – Gazillion
마찬가지로 사이드 노트로, MySQL은 버전 3.23.44 이후 InnoDB에 대한 외래 키를 지원 해왔다. 출처 : http://en.wikipedia.org/wiki/MySQL#Future_releases –
나는 MySQL 워크 벤치를 사용하여 내 스키마를 만든 다음 내 문장을 내 보냅니다. 나는 항상 InnoDB를 스토리지 엔진으로 선정 할 것이므로 MyISAM이 FK를 전혀 지원하지 않는다는 것을 알지 못했습니다. – Gazillion