Цели взаимодействия

Изучение языка Ruby и способов взаимодействия с базами данных может показаться непосильной задачей. Мало того, что вам пришлось выучить целый язык и его концепцию, вам также необходимо изучить SQL и его запросы для взаимодействия с базой данных. Поначалу это может показаться непосильной задачей, поскольку требуется много информации, но, к счастью, мы можем поблагодарить Active Records за то, что они облегчили нам жизнь. Активные записи дают нам возможность легко взаимодействовать и выполнять запросы к этим базам данных. Вместо того чтобы составлять запрос из нескольких предложений, можно просто сказать: «Создать это» или «Уничтожить это». Это не только позволяет нам выполнять запросы, но и дает нам возможность создавать ассоциации между таблицами. Эти ассоциации позволяют связать наши таблицы вместе, будь то отношения «один ко многим» или «многие ко многим». Эти отношения дают нам возможность связывать указанные таблицы, выполнять методы и собирать информацию из одной таблицы в другую и являются чрезвычайно важным понятием для разработчика бэкенда.

Отношения «один ко многим» довольно просты и означают, что одна вещь имеет несколько связей. Примером может служить пользователь Twitter, у которого несколько твитов, или другой реальный пример — один человек, у которого несколько продуктов. Существует бесконечное количество реальных примеров отношений «один-ко-многим». В своем проекте я решил создать приложение для отслеживания вакансий. В этом приложении есть несколько рабочих мест, и каждое из них имеет свой тип. Отношения «один ко многим» будут заключаться в том, что один тип, например MANGA, может иметь несколько рабочих мест, связанных с ним.

class Category < ActiveRecord::Base
  has_many :jobs
end

class Job < ActiveRecord::Base
  belongs_to :category 
end
Вход в полноэкранный режим Выйти из полноэкранного режима

Теперь, например, это не единственное отношение «один-ко-многим», и можно добавить еще много других. Например, я могу создать больше отношений «один-ко-многим», если расширю приложение и позволю ему иметь несколько пользователей, которые смогут входить в систему и отслеживать свои задания. Это будет лучшим примером для демонстрации важности отношений «один-ко-многим» и активных ассоциаций записей. Важно, чтобы при входе в систему пользователь мог видеть только свои рабочие места, так как у него нет причин видеть рабочие места других людей. Поэтому при создании пользователя важно, чтобы ему был присвоен уникальный идентификатор, который в дальнейшем будет связан с каждой созданной им работой. Существует несколько методов, которые могут быть созданы для взаимодействия с отношениями «один-ко-многим».

Отношения «многие-ко-многим» — это две базы данных, которые связаны с третьей базой данных. Например, если есть приложение, которое оценивает книги, и у каждой книги есть рецензии, и для этой рецензии есть пользователь. Здесь мы видим, что есть два отношения «один-ко-многим». Первое заключается в том, что каждая книга может иметь несколько рецензий, и каждый пользователь может написать несколько рецензий. Но каковы будут отношения между пользователями и книгой? Это и есть отношения «многие ко многим», у книг может быть несколько пользователей, а у пользователей — несколько книг. В моем проекте не было возможности для отношений «многие-ко-многим», поскольку я не стал расширяться так далеко, но я считаю, что такая возможность существует. Для реализации отношения «многие-ко-многим» мы рассмотрим пользователей, которые создают задания, и типы заданий, которые они создают. Для каждого пользователя есть несколько типов заданий, которые он может выбрать, и наоборот, для типов заданий и пользователей.

class User < ActiveRecord::Base
  has_many :jobs

end

class User < ActiveRecord::Base
  has_many :jobs

end

class Job < ActiveRecord::Base
  belongs_to :user 
  belongs_to :category 

end
Вход в полноэкранный режим Выход из полноэкранного режима

Эти отношения не единственные в реляционных базах данных, но они являются наиболее распространенными. Как только вы поймете концепцию реляционных баз данных и то, как они могут взаимодействовать друг с другом, вам станет легче работать с вашей базой данных.

Оцените статью
devanswers.ru
Добавить комментарий