Skip to content

Rende11/clojurecourse_task01

Repository files navigation

Мое решение задания с clojurecourse.by

Build Status

csvdb

Задание: необходимо сделать простую базу данных на основе CSV-файлов. Файлы, с которыми предлагается работать в задании: student.csv, student_subject.csv, subject.csv. Эти три файла реализуют связи типа "многие-ко-многим", т.е. один student может изучать множество subject-ов, один subject может принадлежать множеству student-ов.

Заготовка кода представлена в файле src/csvdb/core.clj. Поскольку это простая база данных, мы будем реализовывать только различные виды запроса select, например, такие:

 (select student
   :where #(> (:id %) 1)
   :order-by :year
   :limit 2)

(select student-subject
  :limit 2
  :joins [[:student_id student :id] [:subject_id subject :id]])

Выполнять эти запросы нужно в REPL, поэтому никакой дополнительной системы ввода-вывода для консоли писать не нужно.

Часть функций в заготовке помечены ключевым словом :ImplementMe -- эти функции вам необходимо реализовать. Перед каждой такой функцией в комментариях дан пример вызова функций, а снизу, после знака => -- результат вызова этой функции. В комментарии, после слова Hint, дана подсказка: список clojure-функций, которые я использовал для реализации этой функции.

После того, как вы реализуете все функции, выполните команду 'lein test' и убедитесь, что тесты проходят.

License

Copyright © 2014 Dmitry Bushenko

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published