У меня есть веб-сайт, на котором администратор будет управлять несколькими projects
.
С точки зрения структуры, project
- это просто таблица в базе данных. Все проекты будут иметь общие поля, но всегда будут иметь другие поля, которые отличаются от всех других проектов. в этих таблицах будет храниться информация о документах.
Моя задача - найти лучший способ описать это. Поскольку администратор может создать столько проектов, сколько он хочет, я подумал создать новую таблицу для каждого проекта, который он создает. Изначально все таблицы будут иметь одинаковые поля, но я позволю администратору создавать поля для каждой таблицы проекта.
Есть ли лучший способ сделать это? Или лучше создать таблицу, содержащую только определенные поля проекта, а затем объединить ее с основной таблицей, которая имеет все общие поля?
Мое решение - создать таблицу для каждого проекта, примерно так:
table_project1(id, title, created_on, project1_field1, project1_field2, ...)
table_project2(id, title, created_on, project2_field1, project2_field2, ...)
И так далее.
В этом примере поля id
, title
и created_on
(в действительности существует около 10 общих полей) одинаковы для всех таблиц проекта, но тогда каждая таблица проекта будет иметь свои конкретные поля ( поля также будут созданы администратором)
Другая проблема заключается в том, что все поля, которые будут создаваться администратором динамически, я также должен иметь возможность поиска по ним, поэтому мне нужно отслеживать эти созданные поля.
Что будет лучшим или лучшим решением для этого?
Спасибо