Я пытаюсь выяснить, хорош ли мой подход к системе обмена документами (я использую PHP и SQL).Я думаю, что я создал плохой дизайн БД.
Проще говоря, концепция состоит в том, чтобы создавать документы, делиться ими с другими, получать обновления и отзывы, используя систему комментариев.
Пользователи могут делиться своими документами с любыми другими пользователями в сети (интранет).Пользователи могут получить доступ к документам, которыми другие пользователи поделились с ними, и оставить комментарии к ним.
Это моя схема базы данных
(удалены некоторые столбцы, такие как: made_time, user_ip ...etc)
- documents:
----------------------
-- document_id
-- document_title
-- document_content
-- document_category
- comments:
----------------------
-- comment_id
-- comment_content
-- document_id
-- user_id
- users:
----------------------
-- user_id
-- user_name
-- user_type
-- user_password
- permissions:
----------------------
-- document_id
-- user_id
После того, как пользователь войдет в систему, PHP просмотрит все документы, к которым он может получить доступ с помощью этого SQL-запроса:
SELECT d.document_title
FROM documents AS d, permission AS p
WHERE d.document_id = p.document_id AND p.user_id = '12'
Вышеупомянутый запрос также используется для предоставления доступа к документу
Теперь представьте количество строк, созданных для одного документа, которым совместно пользуются 200 пользователей по сети, это будет 201 строка в таблице разрешений !!который я считаю плохим подходом
Я пытаюсь использовать другой подход, который изменяет таблицу Разрешение на это:
- permissions:
----------------------
-- document_id
-- users_ids
Это позволит мнесохранить идентификаторы пользователей в одном столбце и одной строке на документ.но я не уверен, что это правильный способ сделать это, и, честно говоря, я не вижу, как я это сделаю, используя PHP и SQL
Пожалуйста, посоветуйте мне и оставьте свой отзыв
Спасибо