다음은 DB 정규화 이론 개념의 : 키가 아닌 필드가 다른 키가 아닌 필드에 대한 사실 인 경우기능 "정상화"
3 정규형을 위반된다.
비슷한 개념을 함수/함수 매개 변수에 적용하면 이해가되지 않습니까? 세번째 매개 변수는 상기 제 설명없이 제 향해 '자세'가있는 것,이 예 함수
function validate(field, rule_name, rule_value);
// Usage
validate("password", "min_length", 6);
validate("password", "matches_regex", "/^\S+$/");
:
는 다음의 기능을 고려한다. 그것은 어떤면에서 비정규 화 된 함수처럼 느껴집니다.
제가이 권리를 공식화할지 모르겠지만 테이블 이름과 테이블 필드, DB 및 함수 이름과 함수 매개 변수를 유추 할 수 있습니다.
만약 그러한 비유가 합리적이라면, 함수 설계자가 DB 정규화 이론으로부터 개념을 빌려 오는 것도 의미가 없습니까?
저는이 기능을 게시 한 것을 매우 기쁘게 생각합니다. 지금은 기능에 문제가 있다고 생각하는 것이 아니라는 사실을 알고 있기 때문입니다. 그래도 기분이 좋지 않은가? 어떤 규칙을 위반합니까? –
@Emanuil 원래 기능이 분리 문제를 위반하는 경우 : @ MadKeithV의 메서드는'validate' 함수에 실제 유효성 검사 동작을 삽입 할 수있게하여 재사용 성을 높입니다. 주어진 간단한 예제를 사용하더라도 원본은 여러 데이터 유형에 대한 규칙을 수용하기 위해 다중 서명이 필요합니다. –
@djacobson - 네, 고마워요. 그건 실제로 내 마음 속에있었습니다. 유효성 검사는 하나의 서명을 갖는 단일 함수가되며 "규칙"은 "필드"문자열을 처리하고 문자열이 유효성 검사를 통과하는지 여부를 나타내는 부울 값을 반환하도록 쉽게 확장 될 수있는 추상화가됩니다. –