Необходимо разработать программу для учета состояния компьютеров Артека. Предпологаемая программа будет состояить из базы данных, находящейся на сервере и графического интерфейса, служащего для внесения или изменения состояния компьютеров, а так же для получение интересующих выборок.
Нужно спроектировать структуру базы данных, для этого необходимо понять какие таблицы и поля необходимы. Так же необходимо поразмыслить какие технологии я буду использовать.
С одной стороны хотелось бы использовать 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" } ] ])