Я пишу онлайн-трекер ресурсов проекта, но я новичок в MySQL. Как лучше всего отслеживать проекты, пользователей и ресурсы для чего-то подобного? У меня есть 3 таблицы для активов, пользователей и проектов. Пользователи должны владеть проектами и активами. Активы могут быть членами нескольких проектов, и проекты должны быть доступны для просмотра нескольким пользователям.
Первый метод, который я выбрал, - это иметь поле со средним текстом в каждом проекте с идентификатором для каждого актива, с которым он связан. Каждый актив также будет иметь средний текст, который будет иметь каждый идентификатор проекта, с которым он связан. Однако это проблема, так как я не могу на самом деле выполнить поиск, не разбирая текст, чтобы выяснить проекты / ресурсы, к которым он прикреплен.
Другое решение без разбора состояло бы в том, чтобы иметь отдельные таблицы для информации о связывании, поэтому, например, была бы таблица активов с идентификатором ресурса, идентификатором проекта и идентификатором пользователя, частью которого она является, и если она будет назначена другому проекту или пользователь, будет другая запись в этой таблице. Это решение, однако, будет иметь активы с несколькими записями.
Еще один способ сделать это - создать сайт при создании проекта, который будет хранить актив и пользовательскую информацию. Поскольку может быть тысячи проектов, это довольно быстро приведет к переполнению базы данных, и, насколько я знаю, создание таблиц в MySQL тяжелее, чем записей.
Я склоняюсь ко второму решению. Есть кто-нибудь, кто знает лучший способ?