none
Архитектура проекта.. RRS feed

  • Общие обсуждения

  • Тема курсовой - Бально-Рейтинговая система.

    Планирую написать как сайт на ASP.NET MVC, в котором:

    • Студенты смогут узнавать свои оценки по предметам и глобальный рейтинг
    • Преподаватели смогут выставлять оценки и зачеты
    • Преподаватели смогут создавать план занятий. (Напр.: Лабораторные, 20 часов, Макс. Кол-во баллов: 8)

    В этот раз перед написанием кода решил продумать архитектуру. Т.к. опыта у меня немного, решил обратиться к вам за критикой и советом.

    Вот что у меня вышло:

    Элемент учебного плана - это дерево.

    Учебный план на семестр состоит из двух модулей

    Каждый предмет может быть в первом, во втором и в двух модулях сразу.

    Пример учебного плана:

    Модуль 2:

    --- Лабораторные

    ------ Лаб 1

    ------ Лаб 2

    ------ Лаб 3

    ------ Посещаемость

    --- Посещаемость лекций

    --- Практика

    ------ Посещаемость

    ------ Работа на занятии

    ------ Домашние работы

    --- Личные качества

    --- Экзамен


Все ответы

  • На первый взгляд трудно что-то сказать, вроде всё нормально, ну всё конечно зависит от модели предметной области. Вот связь пользователи и роли типа один к одному, т.е. у одного пользователя только одна роль. А не может быть такое, что скажем пользователь одновременно администратор и сотрудник факультета? Т.е. у него больше чем одна роль. А какой программой Вы диаграммы собирали или правильней сказать смоделировали доменную часть приложения?
    Модератор
  • Я так и хотел делать. Все таки у администратора неограниченные права, что наверное будет нужно редко. И потеря пароля от "сотрудника" будет не такой фатальной.

    Моделировал я это в Visual Studio 2010, Проект моделирования, Диаграмма классов

  • Просто внешний вид диаграмм классов у меня всегда другой был, впервые вижу такой, поэтому и спросил.
    Модератор
  • Эх, вот было время, когда я сам это все дело проектировал. У нас там модель предметной области сущностей за 100 перевалила.

    Но это лирика, давайте по вашей модели:

    1. Как реализовать, то что 2-3 группы в одном потоке учаться по одному учебному плану? И/или учебный план для двух групп обучающихся одна за другой не планируеться к изменению (учебный план, кстати, утверждается на 5 лет и менять его каждый год муторно).

    2. При данной модели данных вы не сможите сохранить, по какому предмету какой студен получил какой бал и за что он его получил. Только суммарный бал студента. Преподаватель будет заходит проставлять части группы баллы, потом заходить: Ой! А кому я уже проставил? Ну давай опять всем поставлю... И кто-то накрутит рейтинг себе очень хорошо.

    3. Как вы определите, какой студент у какого преподавателя практики/лабораторных занимается? Ведь вам преподавателю надо показывать не весь список, а только тех студентов которые в его подгруппе.

    4. У Учебного плана и элемента учебного плана дублируется поле Семестр. Избыточность, как бы...

    Ну вот как то так, для начала. Правьте, выкладывайте, подумаем ))



    Отвечающий
  • Алексей Лосев, спасибо, буду думать

    Также интересно как это реализовать в БД.

    Допустим в классе Факультет есть поле List<Chair> Кафедры;

    Интуитивно я создаю таблицы:

    Факультеты: ID, Название

    Кафедры: ID, Факультет, Название

    Столбец "Факультет" кафедры это foreign key.

    А как быть, в случае с массивом преподавателей у класса Предмет?

    Пока не придумал ничего лучше чем создание новой таблицы

    TeacherSubjectRelation

        ID (PK)

        Teacher (FK_Users_Id)

        Subject (FK_Subjects_Id)

        isLector (bool)

        isPracticeTeacher (bool)

        isLaborant (bool)

        examPrivileges (bool)