| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Управление IT отделом |
| Автор: Prontit 4.5.2012, 09:07 |
| Здравствуйте! Необходимо написать приложение для управление IT отделом, а именно: учет компьютеров (железо, ОС), офисной техники, заправки картриджей и т.д. Накидал таблички. Подскажите, пожалуйста, все ли сделал правильно, есть ли слабые места, и как можно оптимизировать. Краткое описание: В таблице department содержится список отделов. В таблице workplace содержится список рабочих месте (абстрактное понятие, к нему прикрепляется компьютер, монитор, если это не ноутбук и другая техника). К одному рабочему месту может быть прикреплен только один компьютер, один монитор и несколько другие устройств (сканер, принтер, факс). Таблица monitors содержится список мониторов, они прикрепляются к workplace Таблица computers содержится список компьютеров, они прикрепляются к workplace Таблица prisca содержится список принтеров/сканеров, они прикрепляются к workplace В таблицу cartridges ведется учет о заправленных картриджах, имеется ссылка на принтер в таблице prisca Таблица logpass содержит логины/пароли от icq, skype, почте и других программах, имеется ссылка на компьютер в таблице computers Таблица phones содержит список телефонов, они закреплены за отделами, таблица department http://s2.ipicture.ru/ Спасибо! |
| Автор: Prontit 4.5.2012, 09:54 | ||
нет конечно))) просто дело в том, что за конкретным компьютером закреплен конкретный номер ICQ, и чтобы в случае, если там слетит аська, или система, можно было по ip или инвентаризационному номеру узнать какой там номер аськи и соответственно пароль. нет, все принтеры закреплены за рабочим местом, и просто расшарины для остальных. если были бы сетервые, логично было бы закреплять их за отделом.
Учет организуется с целью общих отчетов, например сколько рабочих станций в каждом отделе, сколько принтеров и тд, и более детальных, например, сколько установленных Windows XP по отделам и в общем на предприятии (в таблице computers будет больше отвечающее за ОС). Ну и так же все делается для общей информации, например, узнать телефон отдела, по Ip адресу компьютера узнать отдел, ну и все в этом духе. Благодарю за ответ! |
| Автор: Zloxa 4.5.2012, 10:23 |
И как этот отчет из вашей структуры можно получить? Собсна я потому и гвоорю, что идти надо от отчета accnumber это инвентарный номер, я правильно понял? Как вы полагаете обеспечивать его уникальность, если он у вас размазан по разным сущностям? |
| Автор: igorold 4.5.2012, 11:37 |
| Непонятна структура таблицы workplace. Что она содержит? Собственный индекс и индекс отдела? а смысл? Почему у department primary индекс по наименованию? а по своему индесу, индекса нет? ну и т.д. слабо продумана структура ... видимо опыта маловато ... |
| Автор: Prontit 4.5.2012, 12:13 | ||||
да, это инвентарный номер. ну он прописан как UNIQUE поэтому не может повторяться в таблице. или я не правильно понял вопрос? это рабочее место. дело в том, что за рабочим местом может быть закреплен компьютер, монитор, принтер и тд, у каждого из них свой инвентарный номер. но объединяет их именно рабочее место.
почему же, по своему индексу так же проиндексировано. по этой причине и обратился за советом. есть теоретические знания, и навыки работы, но хочется чтобы все было сделано по уму... Если мне нужно: -хранить информацию об отделах -хранить информацию о компьютерах (закрепленных за отделами) -информацию о логинах/паролях на ПО (закрепленную за компьютерами) , и вытаскивать соответствующие отчеты, как тогда необходимо построить БД? Благодарю за ответ! |
| Автор: igorold 4.5.2012, 12:21 |
| Если у таблицы workplace нет других полей, то она просто дублирует таблицу department, т.е. в таблицах, которые на нее ссылаются с таким же успехом можно написать вместо workplace_id - department_id |
| Автор: Prontit 4.5.2012, 12:25 | ||
мне нужно как то объединять оборудование в группы, например Монитор с номеров 10000 завязан с Системным блоком с номеров 123654 и с принтером 456321. поэтому я и объединяю это в "рабочее место", иначе, если завязать все на отделе, то получится что там 10 мониторов, 10 компов 5 принтеров и не понятно что с чем стоит |
| Автор: igorold 4.5.2012, 12:26 |
| А, понял, - рабочее место ... ну тогда добавь в таблицу workplace еще поле, типа наименование рабочего места, тогда эта таблица будет иметь больше смысла. Добавлено через 3 минуты и 30 секунд как-то будет же необходимо идентифицировать рабочее место - типа: комп. гл.бух комп 1 комн.33 комп 2 комн 33 и т.п. Добавлено через 8 минут и 11 секунд А почему нет таблицы сотрудников в этой структуре? |
| Автор: Prontit 4.5.2012, 12:34 | ||
ну это да, для других таблиц так же добавлю информацию. Можете подсказать с запросом, если я буду знать Ip компьютера, как мне узнать инвентарный номер допустим принтера, который находится на этом же рабочем месте? нет такой необходимости. изначально цель стояла так - учет лицензионного ПО, но потом подумали и решили что будет удобно и телефоны отделов хранить раз уж их всех записаоли, ну и пароли с логинами, чтоб если что, восстановить можно было быстро. если добавить сотрудников, будет через чур "масштабно", но ради интересно можно конечно. Вы можете дать какой-нибудь пример ХОРОШо спроектированной БД такого типа? |
| Автор: Zloxa 4.5.2012, 12:42 | ||||
Инвентарные номера мониторов и компьютеров могут пересекаться?
Ваша структура предполагает что на одном рабочем месте могут быть несколкьо комьютеров и несколько принтеров. |
| Автор: igorold 4.5.2012, 12:43 | ||
|
| Автор: Prontit 4.5.2012, 12:45 | ||||
нет, пересекаться не могут. в таком случае нужно хранить все инвентарные номер в одной таблице?
такого быть не может, ведь workplace_id является уникальным Добавлено через 52 секунды
Благодарю! |
| Автор: Zloxa 4.5.2012, 13:11 |
Да, но принтеры и компьютеры связаны с воркспйсом один ко многим - нет? Получается на одном рабочем месте может находиться несколко компьютеров, несколкьо мониторов и несколько принтеров. И принтеры с компьютерами состоят в отошении многие ко многим. |
| Автор: Prontit 4.5.2012, 13:15 | ||
да, тут ошибся. спасибо! поправлю. а вы не знаете где можно посмотреть пример спроектированной БД такого типа? |
| Автор: Zloxa 4.5.2012, 13:15 |
Прошу прощения, не увидел ограничения уникальности воркспейса на принтерах и компьютерах. Но если отношение воркспейса с компьютером и принтером один к одному - чем может быть полезно введение этих дополнительных сущностей? |
| Автор: Prontit 4.5.2012, 13:31 | ||
эмм...наверное ничем) |
| Автор: igorold 4.5.2012, 13:37 |
| Может тем, что у этих сущностей разные поля для описания свойств? В перспективе может нарисоваться еще таблица, которая может быть присоединена с рабочему месту, например сканер. Вообще, с этой базой уже можно работать ... было бы желание ... |
| Автор: Zloxa 4.5.2012, 16:13 | ||
при желании можно и с плоским экселем работать ))) Но тут я с тобой в целом согласен. На этой структуре уже вполне можно пробовать набивать шишки
Ну тут два варианта, либо структуру упрощать, чтобы и сканеры и принтеры и юсби флешки и кофеварки могли сохраниться в одной структуре. Либо ее усложнять, чтобы при добавлении сущностей изменялась структура. Опять повторюсь, все зависит от того, какую аналитическую информацию мы в конце концов хотим иметь по этим данным. В данный момент для меня совсем не очевидно чем вызвана необходимость разделения сущностей компьютер, монитор, принтер. |
| Автор: igorold 5.5.2012, 07:03 |
| Согласен, лучше сделать универсальную сущность, а для нее сделать справочник типов - монитор, компьютер, принтер и т.п. Тогда легко добавлять новые типы ... ну и отчеты можно будет и в разрезе типов делать. Остается вопрос, а могут у разных типов сущностей совпадать номера, которые сейчас уникальны? Тогда workplace_id нельзя делать уникальным ... придется контролировать связку workplace_id, тип сущности |