2011-02-16 4 views
2

나는 OOP에 젖은 내 발을 얻고 질문에 대한 __construct() 내용이있어 :개체 생성자와 고유 ID

은 가정하자 내가 ID, DateWinner 속성을 보호 걸릴 것 PlayResult 클래스를 만들고 싶어합니다. __construct() 메서드에 넣는 것이 논리적 인 것처럼 보이지만 ID은 처음으로 테이블에 재생 결과가 추가 될 때 MySQL에 의해 생성되는 고유 한 자동 증가 ID입니다.

이제 ID는 내 코드에서 매우 중요합니다. 개인용 레코드를 편집 할 때 개별 레코드를 추적하는 방법입니다. 그러나 사용자가 HTML 형식을 사용하여 새 재생 결과를 제출하면 결과가 아직 데이터베이스에 입력되지 않았으므로 ID 값이 표시되지 않습니다.

그래서 생성자 ID가 생성자에 있어야하나요? 또는 날짜와 수상자만으로 구성해야합니까? ID가 있으면 ID를 설정해야합니까? 데이터베이스의 객체를 저장

답변

1

:-)

덕분에 (그것이 액티브을 않는 한) 오브젝트의 책임이 아니라 인스턴스 A Table Data Gateway의 영속 계층에 클래스의. 따라서 PlayResult 클래스는 설정되는 ID에 대해 신경 쓸 필요가 없어야하며 선택 필드 여야합니다.

개체에 ID가 필요하면 데이터베이스에 ID가 있는지 확인해야합니다 (참조 : Repository 또는 Identity Field). 그렇지 않다면 먼저 데이터베이스에 새 레코드를 만든 다음 새로 생성 된 ID로 PlayResult의 객체 인스턴스를 만듭니다.

+1

글쎄, 내가 생각하기에 기쁘다. 이것은 상상했던 것보다 다소 복잡해 보인다. 내가 제공 한 링크를 읽고 질문이 있는지 알려줄 것입니다. – Drew