Я хочу создать простую систему управления версиями, но у меня нет идей, как структурировать мои данные и мой код.
Вот краткий пример:
- Пользователь входит в систему
- У пользователя есть два варианта при загрузке файла:
- Отправить новый файл
- Отправить новую версию файла
Пользователи должны иметь возможность видеть дерево. (другая версия)
Дерево может быть только до 2 уровней:
|
|--File_A_0
\--File_A_1
\--File_A_2
\--File_A_3
\--File_A_4
Существует также 2 типа файлов: окончательный (последняя утвержденная версия) и черновая версия (последний загруженный файл).
Файл будет физически храниться на сервере.
Каждый файл принадлежит пользователю (или нескольким) и только одной группе.
Редактировать: Группы представляют собой группу документов, документ может принадлежать только ОДНОЙ группе одновременно. Пользователи НЕ зависят от групп.
Начало редактирования:
Вот что я сделал, но это не очень эффективно!
id_article | relative_group_id | id_group | title | submited | date | abstract | reference | draft_version | count | status
id_draft | id_file | version | date
Но сложно управлять, расширять.
Я думаю, что это потому, что групповой параметр ...
Конец редактирования
Итак, вопросы:
- Как я могу схематизировать мою базу данных?
- Какая информация должна быть полезной
чтобы версия этой работы?
- Какая структура для
папки, файлы?
- Какие у вас есть советы, подсказки?
делать такую работу?
(Приложение разработано с использованием PHP и Zend Framework, база данных должна быть mysql или postgresql)