Skip to content

Latest commit

 

History

History
85 lines (71 loc) · 4.92 KB

TODO.MD

File metadata and controls

85 lines (71 loc) · 4.92 KB

Необходимо разработать программу для учета состояния компьютеров Артека. Предпологаемая программа будет состояить из базы данных, находящейся на сервере и графического интерфейса, служащего для внесения или изменения состояния компьютеров, а так же для получение интересующих выборок.

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

С одной стороны хотелось бы использовать clojure, но он не так перспективен для меня как python. Если делать это на python/django, то все может получиться довольно просто. По идее для такой небольшой базы я мог бы использовать sqlite.

Пока что использование python/django кажется мне наиболее интересным и сопутствует моим целям и повышению конкурентноспособности, которая в прочем может и не понадобится.

Возможные таблицы: "Компьютер" "Комплектующая"

--------------Компьютер------------------------------------------------------------------ Под компьютером понимается одно из трех: Моноблок Ноутбук Системный блок Компьютер будет состоять из нескольких комплектующих. Компьютер числится на определенном человеке. У компьютера есть дата поставки У компьютера есть статус ( рабочий/нерабочий ) А также причина поломки. Это поле может ссылаться на нерабочую комплектующую.

--------------Комплектующая--------------------------------------------------------------- Комплектующей может быть: Материнская плата Оперативная память Процессор Жесткий диск DVD дисковод(опционально) Для моноблоков и ноутбуков добавляется экран Для ноутбуков добавляется: Клавиатура Тачпад Модули bluetooth и wifi

Все вышеперечисленные вещи могут быть представлены полем "тип комплектующей"

Нужно понимать, что комплектующие довольно разные по типам характеристик и представить их одной таблицей не выйдет. Например у жестких дисков и оперативной памяти есть объём, а у материнской платы и процессора нет. Зато у процессора и оперативной памяти есть частота которой нет у жестких дисков и материнской платы.

Тут можно либо сделать одну общую таблицу, в которой часть полей будет постоянно пустыми либо сделать отдельную таблицу для каждого вида комплектущих.

И теперь мне уже больше нравится идея хранить всё как json и использовать clojure/clojure-script Это будет дольше и сложнее но не менее интересно. Нужно попробовать прямо тут описать пример того как будет выглядеть json и подумать какие выборки я смогу делать.

{computers : [ { "owner" : "Ляшов Александр Иванович", "inv_n" : "133213232", "type" : "моноблок", "is_broken" : true, "parts": [ { "type" : "RAM",

            }
        ]

    }
]

}

(def computers [ :owner :inventory-number :type :is-broken :parts [ {:type "RAM" } ] ])