Я пишу приложение в cakePHP, но это больше вопрос базы данных. Я новичок в написании приложений для баз данных и новичок в cakePHP.
В моем приложении есть пользователи и два разных типа групп, с которыми они могут ассоциироваться. Например.
Тип A - Группы типа A включают в себя такие вещи, как {новые пользователи, опытные пользователи, опытные пользователи, администраторы, суперпользователи}. Пользователь должен принадлежать 1 и только 1 из этих групп. Эти группы в основном используются для управления тем, что пользователь может делать с приложением.
Тип B - Группы типа B включают в себя такие вещи, как {друзья, семья, коллеги, мелкий микс, средний микс, большой микс и т. Д.}} Пользователь может принадлежать ко многим из этих групп или не участвовать в все. Эти группы в основном используются для управления тем, кого мы приглашаем на определенные функции и события.
Сначала я подумал, что у меня будет таблица с именем «Группы» и я просто добавлю демона с именем «тип», чтобы я мог сохранять их различимыми, но повторно использовать ту же таблицу. Все поля, скорее всего, будут идентичны для двух разных типов групп.
Но я не думаю, что это сработает, поскольку пользователь может принадлежать только одному типу A, но он может принадлежать к любому количеству групп типа B. Как могут отличаться отношения, используя только одну таблицу?
Моя единственная мысль, которую я оставил, - создать 2 таблицы, по одной для каждого типа группы. Поля будут повторяться, по крайней мере, на данный момент, но это позволило бы мне иметь разные отношения с пользовательской таблицей, например, имеет одну, имеет 0 или более ...
Есть ли лучший способ сделать это? Подходят ли мои предложенные решения?