Внешние ключи отлично подходят для связывания одной строки из одной таблицы с одной строкой в другой таблице. Но иногда требуется установить соответствие нескольких строк из одной таблицы с несколькими строками в другой таблице. Рассмотрим в данном примере взаимосвязь между таблицами учащихся и классов. Каждый учащийся может пройти обучение во многих классах, а каждый класс может быть назначен многим учащимся. Это так называемое отношение "многие ко многим". Такое отношение обычно реализуется с помощью таблицы соответствий. В данном случае можно создать таблицу соответствий student_class_map с двумя столбцами student_id и class_id, а также первичный ключ, объединяющий оба этих столбца. Иными словами, отдельный класс может быть назначен конкретному учащемуся только один раз.
|
Каждый объект-сущность целесообразно обозначить в перечисленных выше таблицах с помощью идентификатора в столбце id. В Joomla это обычно делается автоматическим приращением целочисленного значения первичного ключа, как пояснялось ранее в статьях нашего сайта. В данном примере каждый преподаватель относится лишь к одному конкретному отделению, и поэтому в таблицу преподавателей можно ввести столбец как поле ключа для таблицы отделений (например, с идентификатором отделения).
|
Начнем рассмотрение примера базы данных для учебного заведения со следующих четырех справочных таблиц.
|
Составление структуры таблиц базы данных является важной стадией разработки расширения Joomla. Общий принцип составления структуры базы данных заключается в следующем: для каждого типа объекта-сущности в базе данных должна быть выделена отдельная таблица, причем в данной таблице должен находиться объект-сущность только одного типа. Рассмотрим в качестве примера базу данных для учебного заведения. Она предназначена для отслеживания учащихся, преподавателей и их классов. Таблицы этой базы данных можно разделить на группы по типам информации, которая будет храниться в них. Следовательно, для такой базы данных можно выделить следующие типы таблиц.
|
Вместо имен столбцов в большинстве запросов могут быть введены выражения. В выражении обычно указывается имя столбца, чтобы обозначить место для записи значения. Характерным тому примером служит оператор SET в запросе по команде UPDATE или INSERT.
|
Запросы, формируемые по команде UNION, позволяют объединить сходные столбцы из двух и более таблиц в одном запросе. Такие запросы редко используются в приложения Joomla. Ниже приведена общая форма запроса, составляемого по команде UNION.
|
Запросы, формируемые по команде DELETE, служат для безвозвратного удаления строк из таблиц базы данных. Ниже приведена общая форма запроса, составляемого по команде DELETE.
|
Запросы, формируемые по команде INSERT, служат для ввода новых строк в таблицы базы данных. Ниже приведена общая форма запроса, составляемого по команде INSERT.
|
Запросы, формируемые по команде UPDATE, позволяют видоизменить содержимое столбцов таблицы. Ниже приведена общая форма запроса, составляемого по команде UPDATE.
|
Чаще всего в приложениях Joomla применяются запросы по команде SELECT. Они служат для выборки данных из таблиц в базе данных. Ниже приведена простейшая структура запроса по команде SELECT.
|
|
|
|
Страница 10 из 40
|