Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Задание: Информационная система «Творческая студия»

Контекст Вы разрабатываете прототип информационной системы для творческой студии. В студии есть исполнители (люди, которые создают контент) и проекты, над которыми они работают. У каждого исполнителя есть личное дело с конфиденциальной информацией, доступ к которой должен быть строго отделён от основной информации об исполнителе.

Функциональные требования к данным

  1. Персональная информация: О каждом человеке нужно хранить публичный псевдоним (никнейм) и дату регистрации в студии.
  2. Личное дело (Связь 1:1): К каждому исполнителю привязано строго одно личное дело (и наоборот — одно дело относится только к одному человеку). В личном деле хранятся настоящие паспортные данные и адрес проживания. Эти данные не должны находиться в той же таблице, что и псевдоним, для обеспечения условного разделения уровней доступа.
  3. Проектная деятельность (Связь M:N): В студии ведутся различные проекты. У каждого проекта есть название и дата дедлайна. Один исполнитель может работать одновременно над несколькими проектами, и в одном проекте всегда задействовано несколько исполнителей.
  4. Дополнительное условие: В рамках одного проекта у разных исполнителей могут быть разные роли (например, «Ведущий», «Монтажёр», «Сценарист»). Необходимо фиксировать, в какой роли конкретный человек участвует в конкретном проекте.

Техническое задание Вам необходимо написать консольное приложение на C# с использованием SQLite и библиотеки Microsoft.Data.Sqlite (ADO.NET Core).

Этап 1. Проектирование и инициализация

  • Спроектируйте схему базы данных, обеспечив связи один-к-одному (между исполнителем и личным делом) и многие-ко-многим (между исполнителями и проектами, с учётом роли).
  • Напишите код, который создаёт файл базы данных и все необходимые таблицы (если их нет).

Этап 2. Наполнение тестовыми данными

  • Добавьте в код (или отдельным скриптом) вставку минимум 3 исполнителей с их личными делами.
  • Добавьте минимум 2 проекта.
  • Свяжите их между собой, назначив разные роли.

Этап 3. Реализация запроса Напишите метод, который выводит в консоль следующую информацию:

Для каждого проекта показать его название, дедлайн, и полный список участников. Для каждого участника вывести: псевдоним (из таблицы исполнителей), роль в этом проекте (из связующей таблицы) и настоящие паспортные данные (из связанной таблицы 1:1).

Требования к коду:

  • Не использовать ORM (Entity Framework), только чистые объекты команд SqliteCommand.
  • Чтение данных должно быть реализовано через SqliteDataReader.
  • Имена классов (сущностей) и таблиц в коде вы должны придумать самостоятельно, исходя из логики предметной области. Использовать имена «Table1», «Table2» запрещено.

Критерии оценки:

  • Корректность реализации внешних ключей для связей 1:1 и M:N.
  • Правильное использование JOIN при чтении связанных данных.
  • Отсутствие дублирования данных (нормализация).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors