maaboo
Новичок
Насчёт привязки многие ко многим (БД типа Objects<->Users)
Доброго времени суток.
Давно не занимался БД, а тут приспичило. И натолкнулся на такую проблему (для меня).
Имеется некоторое количество неких объектов, ну назовём его Box (один объект, а не список).
Имеется некоторое количество субъектов, назовём его User (опять же одного).
Box может содержать список User (скажем до 5.000), где User имеет определённые Rights и Status (оба - таблицы с некоторым списком значений). В процессе развития, разумеется Rights и Status будут пополнятся новыми значениями.
И User может содержать несколько Box (по крайней мере так выглядит это всё для самого User), на которые у него есть Rights и Status (скажем какие-нибудь подписки, баны, права редактирования и прочее).
Каким образом организовать таблицы (я выбираю MySQL, да), чтобы правильно рулить пользователями и коробками?
Моё предположение, после некоторого поиска было такое:
TABLE:Boxes
---
Box_ID KEY
Box_Name...
...
TABLE:Users
---
User_ID KEY
User_Name
...
TABLE:States
---
State_ID KEY
State_Name
...
TABLE:UserState
---
Box_ID KEY
User_ID KEY
State_ID KEY
State_Value DATA
Так ли это? И насколько это будет напряжно для PHP лопатить такие таблицы, если скажем большое количество Rights и Status будет меняться с большой частотой (для 1 пользователя частота примерно 50 раз за день, всего предполагается 1000-5000 пользователей). Как это посчитать? (Ибо сам скрипт, подозреваю уже будет очень тяжёл для процессора).
Есть ещё проблема в том, что пользователи должны иметь такие хитрые статусы, которые позволят им передавать другим пользователям статусы и права, но это возможно не влияет на конечный ответ и рулится исключительно добавлением новых столбцов в БД.
Спасибо!
Доброго времени суток.
Давно не занимался БД, а тут приспичило. И натолкнулся на такую проблему (для меня).
Имеется некоторое количество неких объектов, ну назовём его Box (один объект, а не список).
Имеется некоторое количество субъектов, назовём его User (опять же одного).
Box может содержать список User (скажем до 5.000), где User имеет определённые Rights и Status (оба - таблицы с некоторым списком значений). В процессе развития, разумеется Rights и Status будут пополнятся новыми значениями.
И User может содержать несколько Box (по крайней мере так выглядит это всё для самого User), на которые у него есть Rights и Status (скажем какие-нибудь подписки, баны, права редактирования и прочее).
Каким образом организовать таблицы (я выбираю MySQL, да), чтобы правильно рулить пользователями и коробками?
Моё предположение, после некоторого поиска было такое:
TABLE:Boxes
---
Box_ID KEY
Box_Name...
...
TABLE:Users
---
User_ID KEY
User_Name
...
TABLE:States
---
State_ID KEY
State_Name
...
TABLE:UserState
---
Box_ID KEY
User_ID KEY
State_ID KEY
State_Value DATA
Так ли это? И насколько это будет напряжно для PHP лопатить такие таблицы, если скажем большое количество Rights и Status будет меняться с большой частотой (для 1 пользователя частота примерно 50 раз за день, всего предполагается 1000-5000 пользователей). Как это посчитать? (Ибо сам скрипт, подозреваю уже будет очень тяжёл для процессора).
Есть ещё проблема в том, что пользователи должны иметь такие хитрые статусы, которые позволят им передавать другим пользователям статусы и права, но это возможно не влияет на конечный ответ и рулится исключительно добавлением новых столбцов в БД.
Спасибо!