Каково взаимодействие между Objective-C и РСУБД, такими как SQLite? - PullRequest
1 голос
/ 13 января 2011

Я хотел бы узнать, как сохранить данные в РСУБД из Objective-C, и я не знаю, с чего начать это изучать. Я изучаю СУРБД? Я изучаю моделирование данных?

Мне интересно, есть ли методы или особые соображения при моделировании данных, чтобы они не попадали в ловушки? То есть Есть ли такие практические правила, как «не подкласс» или «всегда инкапсулировать ваши атрибуты».

Из моего ограниченного опыта было довольно сложно перевести класс Objective-C в реляционную базу данных. Может показаться, что CoreData поможет мне начать работу по правильному пути, но также кажется, что CoreData вроде как дает мне много вещей, которые нужно принимать как должное (мне интересно знать, что происходит под капотом с вызовами SQL ...). Или я неправильно понимаю эту структуру?

Я ищу любые ресурсы, которые позволили бы мне начать путь к лучшему пониманию СУБД и того, как классы моделей Objective-C обычно взаимодействуют с ними для хранения данных.

EDIT:

Чтобы ответить на мое собственное любопытство, я взял SQL Джо Селко для умных людей, а также Начальный дизайн базы данных Клэр Черчер. Ни один из них на самом деле не дает многого путем взаимодействия между классами контроллеров, написанными на языках, отличных от SQL (в моем случае Objective-C), SQL и базой данных. Там отсутствует ссылка, которую я просто не понимаю ...

Ответы [ 2 ]

0 голосов
/ 14 ноября 2011

Извините, что понадобилось так много времени, чтобы вернуться к вам.То, что вы спрашиваете, не относится к Objective-C.Мое первое знакомство с подключением объектно-ориентированного кода к RDBMS было Enterprise Object Frameworks в 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)

Надеюсь, это лучше отвечает на ваш вопрос,

0 голосов
/ 14 марта 2011
...