За последние пару лет я работал над своей собственной простой PHP CMS, которую я использую для своих личных проектов. Единственное, чего не хватает, это простое решение для базы данных.Создание структуры сущности Структура таблиц SQL
Я ищу для создания простой базы данных базы данных контента, в которой я могу указать новый тип (пользователь, книга, событие..ect), а затем иметь возможность автоматически загружать все, что с ним связано.
Для некоторых типов содержимого могут быть поля, которые могут иметь только одно значение, а некоторые - от нуля до многих значений, поэтому я буду использовать для них новую таблицу. Возьмем, к примеру:
table: event
columns: id, name, description, date
table: event_people:
columns: id_event, id_user
table: event_pictures:
columns: id_event, picture
События будут иметь кучу полей, содержащих такие значения, как описание, но также может быть куча картинок и людей, идущих к нему.
Я хочу, чтобы создать общий PHP-класс, который будет загружать всю информацию о типе контента. Мой текущий мыслительный процесс, чтобы сделать функцию объекта загрузчика, который я могу дать ему идентификатор и типа:
Entity:load($id, "event");
Из этого я собирался получить все таблицы с префиксом «событие», загрузить все данные с переданным в ИД, а затем сохранить его в многомерном массиве. Я чувствую, что есть, вероятно, более эффективный способ для этого. Я хотел бы держаться подальше от наличия файла конфигурации где-то, где указаны все типы контента и их дочерние таблицы, потому что я хочу иметь возможность добавлять новую дочернюю таблицу и автоматически ее подбирать.
Есть ли способ сохранить это отношение непосредственно в таблице MySQL? Я не делаю много данных, и я только недавно начал использовать внешние ключи (что спасает жизнь). Был бы я более эффективным, чтобы увидеть, какие таблицы имеют внешний ключ, связанный с столбцом id в таблице событий, и если да, как это сделать? Я также открыт для разных способов хранения этой информации.
Примечание: Я делаю это только для удовольствия, поэтому, пожалуйста, не обращайтесь к мне, чтобы использовать какие-либо готовые рамки. Я хотел бы создать это сам.
Вы, кажется, ищете модель db. Как я вижу, PHP не должен быть даже тегом. – Drew