SaaS / SaaS: 2.6 - Models, Databases and ActiveRecord

← →
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Увидев что Модель-Контроллер-Вид разновидность организации приложений

husband 01.03.12 в 10:03

0

давайте рассмотрим немного подробнее, но не слишком

husband 01.03.12 в 10:03

0

каждую из трех частей начиная с Модели, мы коснемся

husband 01.03.12 в 10:04

0

баз данных и activerecord. Позднее когда мы будем работать с нашим первым Rails приложением

husband 01.03.12 в 10:05

0

и другими вещами, мы рассмотрим эти вопросы подробнее.

husband 01.03.12 в 10:05

0

и другими вещами, мы рассмотрим эти вопросы подробнее. Нашей целью

husband 01.03.12 в 10:11

0

является понимание того как эти умные слова и понятия складываются

husband 01.03.12 в 10:12

0

в общую картину. Давайте вернемся к нашей разновидности мира. Мы находимся

husband 01.03.12 в 10:18

0

здесь. Мы собираеся говорить о моделях. И о серверах приложений. И

husband 01.03.12 в 10:20

0

И перманентная база данных здесь. Несут ответственность за управление частями

husband 01.03.12 в 20:48

0

кода, которые имеют отношение к моделям. Итак основная проблема персистентности

husband 01.03.12 в 21:00

0

которую нужно решить в любом SaaS приложении, в Вашем коде есть объекты

husband 01.03.12 в 21:02

0

которые воздействуют на память. Если Вы будете играться с IRB, вы можете

husband 01.03.12 в 21:03

0

увидеть это если выведите на печать значение переменной, обычно

husband 01.03.12 в 21:06

0

вы увидите что-то вроде: к какому классу принадлежит объект

husband 01.03.12 в 21:11

0

ID этого объекта и затем вы можете запросить

husband 01.03.12 в 21:14

0

свойства объекта. Но когда приходит время сохранить сущность

husband 01.03.12 в 21:17

0

перманентно, вы должны как нибудь решить в каком формате зафиксировать ее,

husband 01.03.12 в 21:26

0

поместить в перманентное хранилище, и извлечь обратно когда будет нужно.

husband 01.03.12 в 21:27

0

В зависимости от того какой язык вы используете, и какое десятилетие родились некоторые

husband 01.03.12 в 21:32

0

называют это маршалинг, некоторые сериализация. А некоторые

husband 01.03.12 в 21:33

0

никак не называют, а просто понимают как это работает.

husband 01.03.12 в 21:34

0

Затем с помощью демаршалинга или десеарилизации получаем сущность из хранилища и

husband 01.03.12 в 21:39

0

и воссоздаем ее в памяти, даже несмотря на то что ID объекта другой

husband 01.03.12 в 21:41

0

у вас синтезирован новый объект. Он ведет себя так же как и оригинальный

husband 01.03.12 в 21:45

0

Так как же переключаться между этими двумя

husband 01.03.12 в 21:49

0

видами представления? И опять же как и следовало ожидать, это такая

husband 01.03.12 в 21:53

0

обычнвя вещь что все сайты должны делать это. Целый ряд различных паттернов

husband 01.03.12 в 21:55

0

и фреймворков развивались чтобы помочь решить нам эту проблему. Основные операции которые

husband 01.03.12 в 22:00

0

должны все поддерживать, называются CRUD операции: создание нового

husband 01.03.12 в 22:03

0

объекта, чтение уже созданного, создание свойств уже созданного объекта

husband 01.03.12 в 22:04

0

или удаление объекта и уничтожение его навсегда. И ActiveRecord паттерн

husband 01.03.12 в 22:07

0

который мы будем использовать. ActiveRecord отличается тем что

husband 01.03.12 в 22:09

0

каждая модель знает как CRUD себя. И есть ряд общих механизмов которые

husband 01.03.12 в 22:14

0

которыми обладают все модели ActiveRecord. Так что когда вы говорите, я хочу сущность, которая

maxwell44 02.03.12 в 22:04

0

является фильмом и обладает такими-то атрибутами, вы не должны заботиться о том, когда

maxwell44 02.03.12 в 22:05

0

наступает время для маршалинга фильма, какие необходимы этапы, чтобы упаковать

maxwell44 02.03.12 в 22:10

0

всю эту штуку и поместить в базу данных. И каковы этапы

maxwell44 02.03.12 в 22:11

0

демаршалинга и возвращения? Давайте возьмём разновидность баз данных номер ноль,

maxwell44 02.03.12 в 22:13

0

ноль один. В Rails самая распространённая парадигма - это хранить все ваши модели в

maxwell44 02.03.12 в 22:14

0

реляционный базах данных. [кашель] Если вы брали курс или имели некоторый опыт

maxwell44 02.03.12 в 22:15

0

с реляционными базами данных, то это замечательно. Если нет, то это те пять процентов,

maxwell44 02.03.12 в 22:16

0

которые составят полпути к десяти процентам того, что вам нужно знать. Реляционные

maxwell44 02.03.12 в 22:17

0

базы данных хранят объекты в таблицах. Каждый тип модели получает свою собственную таблицу

maxwell44 02.03.12 в 22:18

0

в базе данных, и по сути одна строка в таблице - это один экземпляр модели.

maxwell44 02.03.12 в 22:20

0

Так в таблице фильмов каждая строка в базе данных будет представлять один объект фильма, который мы хотим сохранить.

maxwell44 02.03.12 в 22:21

0

Столбцы в таблицах хранят значения атрибутов модели.

maxwell44 02.03.12 в 22:22

0

Так каждый фильм обладает рейтингом, датой выпуска и это означает, что в каждой строке одна и та же структура, верно?

maxwell44 02.03.12 в 22:23

0

В общем случае мы не можем решить, какая: вы знаете,

maxwell44 02.03.12 в 22:24

0

что некоторые фильмы имеют названия, а некоторые нет. Ну, мы можем сделать это,

maxwell44 02.03.12 в 22:26

0

но с точки зрения базы данных, на её уровне детализации, каждый элемент одинаков.

maxwell44 02.03.12 в 22:32

0
Минутку...

Следующая страница →