[SQL]SQL Antipatterns Tip
- 각 값은 자신의 칼럼과 행에 저장하라
- 계층구조에는 항목과 관계가 있다. 작업에 맞도록 이 둘을 모두 모델링해야한다
- 관례는 도움이 될 때만 좋은 것이다
- 제약조건을 사용해 데이터베이스에서 실수를 방지하라
- 메타데이터를 위해서는 메타데이터를 사용하라
- 모든 테이블 관계에는 참조하는 테이블 하나, 참조되는 테이블 하나가 있다
- 같은 의미를 가지는 각각의 값은 하나의 칼럼에 저장하라
- 데이터가 메타데이터를 낳도록 하지 마라
- 가능하면 FLOAT를 사용하지 마라
- 고정된 값의 집합에 대한 유효성 확인을 할 때는 메타데이터를 사용하라
유동적인 값의 집합에 대한 유효성 확인을 할 때는 데이터를 사용하라
- 데이터베이스 밖의 리소스는 데이터베이스가 관리하지 않는다
- 데이터를 알고, 쿼리를 알고, 인덱스를 MENTOR하라
- 어떤 데이터 타입에 대해서든 누락된 값을 뜻하는 데는 NULL을 사용하라
- 모호한 쿼리 결과를 피하기 위해 단일 값 규칙을 따라라
- 어떤 쿼리는 최적화할 수 없다. 이 경우에는 다른 접근방법을 취해야 한다
- 모든 문제를 SQL로 풀어야 하는 것은 아니다
- 하나의 SQL로 복잡한 문제로 풀 수 있을 것처럼 보이더라도, 확실치 못한 방법의 유혹에 넘어가면 안 된다
- 원하는 대로 가져가라. 그러나 가져간 건 다 먹어야 한다
- 당신이 패스워드를 읽을 수 있으면, 해커도 읽을 수 있다
- 사용자가 값을 입력하게 하라. 그러나 코드를 입력하게 해서는 안 된다
- 가상키를 행의 식별자로 사용한다. 가상키는 행 번호가 아니다
- 코드의 문제를 해결하는 것만으로도 이미 충분히 어렵다. 보지 않고 작업해 스스로를 방해하지 마라
- 애플리케이션뿐만 아니라 데이터베이스에 대해서도 문서화, 테스트, 소스 코드 관리와 같은 소프트웨어 개발 관례를 사용하라
- 테이블에서 모델을 분리하라