주어진 객체가 N 개의 자식 객체를 가질 수없는 비즈니스 레벨 제약이 있다고 가정 해보십시오. 자식 개체를 만드는 경우 해당 개체에 대해 N 개 이상의 자식 개체를 만들지 않도록하려면 어떻게해야합니까?RDBMS의 다중 행 테이블 제약
READ를 수행하여 기존 자식 개체의 수를 얻는 경우 N보다 작다는 것을 확인한 다음 테이블에서 INSERT를 수행하면 다른 INSERT가 들어갈 수 있었던 READ와 INSERT 사이에 시간이 있습니다.
다른 쿼리에 나쁜 영향을 줄 수 있으므로 테이블을 잠글 필요가 없습니다.
보다 구체적인 예는 Resident 개체와 Home 개체가있는 경우입니다. Resident 테이블에는 id, resident_name, home_id와 같은 것이 있습니다. 4 명 이상의 거주자가 동일한 home_id를 갖지 않도록하려면 어떻게합니까?
SQL에서하지 말고 프로그램 논리에서 수행 –
응용 프로그램에서 수행하는 경우, 어떤 종류의 잠금 메커니즘이 있습니까? 나는 두 번째 단락에서 그것을 호출했다. READ, VALIDATE, INSERT를 수행하면 다른 INSERT가 중간에 들어갈 수있다. 성능에 좋지 않은 테이블 전체를 잠그지 않는 한. – thait84