2011-01-13 5 views
1

Objective-C에서 RDBMS로 데이터를 유지하는 방법을 배우고 싶습니다. 그리고 이것을 배우기 시작해야 할 곳이 정말로 없습니다. RDBMS를 배울 수 있습니까? 데이터 모델링을 배우나요?Objective-C와 SQLite와 같은 RDBMS 간의 상호 작용은 무엇입니까?

함정에 빠지지 않도록 데이터를 모델링 할 때 기술이나 특별한 고려 사항이 궁금합니다. 나는. "하위 클래스로 만들지 마라"또는 "항상 속성을 캡슐화"하는 것과 같은 엄지 손가락 규칙이 있습니까?

제한된 경험으로 Objective-C 클래스를 관계형 데이터베이스로 변환하는 것은 꽤 어려웠습니다. CoreData가 올바른 경로에서 시작할 수 있을지는 모르겠지만 CoreData처럼 보이는 것은 당연한 것입니다. (SQL 호출로 무슨 일이 일어나는지 궁금합니다. ...). 아니면이 틀을 잘못 이해하고 있습니까?

나는 RDBMS를 더 잘 이해할 수있는 경로와 Objective-C 모델 클래스가 데이터 저장을 위해 일반적으로 상호 작용하는 방법을 알기 시작했다.

편집 : 내 자신의 호기심에 대답하기위한 노력의 일환으로

, 나는 클레어 Churcher에 의해 조 셀코의에 smarties에 대한 SQL뿐만 아니라부터 데이터베이스 설계를 포착했습니다. 그들 둘 다 비 SQL 언어 (나의 경우 Objective-C), SQL 및 데이터베이스로 작성된 컨트롤러 클래스 간의 상호 작용을 통해 많은 것을 제공하지 못합니다. 난 그냥 이해하고 있지 않다 누락 된 링크 ...

답변

0

체크 아웃이있다 BaseTen https://bitbucket.org/mka/baseten/wiki/Home

+0

그래서 BaseTen은 재미있어 보이지만 RDBMS와 Objective-C가 함께 작동하여 모델 데이터를 (로컬 또는 외부에서) 유지하는 방법과 컨텍스트에 대한 통찰력을 얻지 못했습니다. 이 프레임 워크를 사용하여 이론, 예제 및 모범 사례를 설명하는 방법을 알 수 있지만 이러한 "상위 수준"개념은 다른 프레임 워크의 구문을 배우는 것만으로는 이해할 수 없습니다. 물론, 그 점을 놓치고 간다면, 공유 할 수있는 더 깊은 이해에 감사드립니다. – edelaney05

0

죄송합니다 그것이 당신에게 돌아올 너무 오래 걸렸다. 당신이 묻는 것은 Objective-C에만 국한된 것이 아닙니다. RDBMS에 객체 지향 코드를 연결하는 방법을 처음 소개 한 것은 NextStep의 엔터프라이즈 객체 프레임 워크였습니다. 그러나 그 이후로이 아이디어는 Java와 Ruby를 포함한 대부분의 객체 지향 언어로 복사되었습니다 (ActiveRecord 참고).

개념적으로 프로그래밍 측면에는 일반적으로 테이블의 각 행을 나타내는 데 사용되는 엔티티 클래스가 있습니다. CoreData 또는 WebObjects와 같은 일부 경우에는지도가 응용 프로그램 코드와 데이터베이스 사이의 인터페이스를 만드는 데 사용됩니다. 이 맵으로 인해 개발자는 일반 엔터티 클래스의 인스턴스를 사용하여 데이터를 나타낼 수 있습니다. 물론, 그 클래스는 특정 엔티티 고유의 메소드를 추가 할 때 여러 번 서브 클래 싱됩니다.

예를 들어 연락처에 대한 테이블이 있고 이름에 대한 열과성에 대한 열이 있다고 가정 해 보겠습니다. 응용 프로그램에서 종종 전체 이름을 표시하려고합니다. 엔티티 클래스의 하위 클래스에서 성과 이름을 단일 문자열로 반환하는 메서드를 추가 할 수 있습니다.

ActiveRecord와 같은 다른 프레임 워크에서는 항상 각 테이블을 나타내는 하위 클래스가 있어야한다고 생각합니다.

개념적으로 RDBMS와 잘 조화되도록 객체 지향 프로그래밍을 찾습니다.

표 (연락처) -> 클래스 (연락)

행 -> 클래스의 인스턴스 (aContact)

열 (firstName을) -> 속성 (인스턴스 변수 일명, 속성) (firstName을)

관계 :

to-one (father) -> Properties (father, an instance of Contact) 

to-many (emailAddresses) -> Array (emailAddresses, an array of instances of EmailAddress class) 

희망이, 귀하의 질문에 좋은 답변을

관련 문제