문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
database:sqlantipatterns [2011/10/21 18:31] kwon37xi [모르는 것에 대한 두려움] |
database:sqlantipatterns [2016/09/24 15:16] (현재) kwon37xi |
||
|---|---|---|---|
| 줄 123: | 줄 123: | ||
| * NUMERIC과 DECIMAL은 유리수가 반올림되지 않고 저장된다. | * NUMERIC과 DECIMAL은 유리수가 반올림되지 않고 저장된다. | ||
| * Tip : 가능하면 FLOAT을 사용하지 말라. | * Tip : 가능하면 FLOAT을 사용하지 말라. | ||
| + | * Precision and scale : http:// | ||
| + | * precision 정밀도 : 소수점 앞뒤를 모두 포함한 총 자리수 | ||
| + | * scale : 소수점 뒤 자리수 | ||
| + | * 예) 112.34 : precision 5, scale 2 | ||
| ===== 31가지 맛 ===== | ===== 31가지 맛 ===== | ||
| 줄 270: | 줄 274: | ||
| ===== 마법의 콩 ===== | ===== 마법의 콩 ===== | ||
| * 목표 : MVC에서 모델 단순화하기 | * 목표 : MVC에서 모델 단순화하기 | ||
| - | * 안티패턴 : 안티패턴은 | + | * 안티패턴 : MVC 애플리케션에서 모든 모델 클래스가 액티브 레코드(ActiveRecord) 클래스를 상속하는 관행 |
| * 안티 패턴 사용이 합당한 경우 : 프로토타이핑 | * 안티 패턴 사용이 합당한 경우 : 프로토타이핑 | ||
| * 해법 : 액티브 레코드를 가지는 모델 | * 해법 : 액티브 레코드를 가지는 모델 | ||
| 줄 279: | 줄 283: | ||
| 컨트롤러에서 DAO 혹은 액티브 레코드의 DB관련 메소드(혹은 그 외의 데이터 접근에 직접 관련된 메소드)를 직접 호출하지 말라는 얘기이다. | 컨트롤러에서 DAO 혹은 액티브 레코드의 DB관련 메소드(혹은 그 외의 데이터 접근에 직접 관련된 메소드)를 직접 호출하지 말라는 얘기이다. | ||
| - | Java로 설명하면 Controller는 Service를 호출하고 Service에서 DAO를 호출해야 한다. | + | Java로 설명하면 Controller는 Service를 호출하고 Service에서 DAO를 호출해야 한다. Controller에서 |
| 이 원칙을 액티브 레코드를 사용하는 MVC 프레임워크에서도 그대로 적용하며 Controller에서 ActiveRecord의 데이버테이스 접근 메소드를 직접 호출하지 말고 중간 모델 객체(서비스 객체)를 두라는 의미이다. | 이 원칙을 액티브 레코드를 사용하는 MVC 프레임워크에서도 그대로 적용하며 Controller에서 ActiveRecord의 데이버테이스 접근 메소드를 직접 호출하지 말고 중간 모델 객체(서비스 객체)를 두라는 의미이다. | ||
| + | |||
| + | ====== 책 외의 다른 정보 ====== | ||
| + | |||
| + | ===== EXIST()를 사용할 곳에 COUNT() 사용금지 ===== | ||
| + | * [[https:// | ||
| + | * '' | ||