Я хочу сделать простую систему управления версиями, но у меня нет идей о том, как структурировать мои данные и мой код.
Вот краткий пример:
- Пользователь регистрируется в
- Пользователь имеет два варианта при загрузке файла:
- Отправить новый файл
- Отправить новую версию файла
Пользователи должны иметь возможность видеть дерево. (другая версия) Дерево может содержать только до двух уровней:
|
|--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
Но это трудно справиться, расширить. Я думаю, это потому, что группа paramater...
Редактирование конца
Итак, вопросы:
- Как я могу схематизировать мою базу данных?
- Какая информация должна быть полезной версия для этой работы?
- Какая структура для папки, файлы?
- Какие советы, подсказки у вас есть? выполнять эту работу?
(Приложение разработано с PHP и Zend Framework, база данных должна быть mysql или postgresql)