Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

Структура БД   Найти похожие ветки 

 
Ozone ©   (2004-02-26 17:52) [0]

Написал клиент/серверную программу которая собирает информацию о компьютерах из локальной сети (каждый месяц). Теперь стоит задача правильно огранизовать БД для хранения собираемой информации.
Дело вот в чем - необходимо отслеживать движение и изменение кофигурации компьютеров => если произошли некоторые изменения (поставили еще один HD, убрали принтер и т.п.), то необходимо эту информацию как-тоо зафиксировать.
В голову приходит только одна мысль - сделать что-то типа дерева, т.е. если произошли изменения конфигурации, то выношу их на первый план, а старую информацию уношу вниз.

Например:

изначально:
[b]
комп №1 (10.03.2001)
комп №2 (11.03.2001)
...
[/b]

через месяц (допустим была изм. конфигурация "комп №1" 10.04.2001), получаем
[b]
комп №1 (10.04.2001)
- комп №1 (10.03.2001)
комп №2 (11.03.2001)
...
[/b]

еще через месяц (опять изменили "комп №1"), получаем
[b]
комп №1 (10.05.2001)
- комп №1 (10.04.2001)
- комп №1 (10.03.2001)
комп №2
...
[/b]


 
Sandman25+1   (2004-02-26 17:53) [1]

Каков вопрос?


 
Ozone ©   (2004-02-26 17:56) [2]

Может быть есть более правильное решение моей проблемы?


 
Sandman25+1   (2004-02-26 17:59) [3]

Нет правильного и неправильного.
Что нужно, то и делайте. Как удобно, так и делайте.
Можно перед показом запросить номер компьютера, а потом показывать информацию в Dbgrid. Тогда пользователь сможет сортировать как ему удобно (по дате, по названию измененного устройства, по цене).


 
Vlad ©   (2004-02-26 18:00) [4]

а для чего тут дерево ?
Т.е. почему нельзя представить данные ввиде обычного списка с хранением истории ?


 
Ozone ©   (2004-02-26 18:02) [5]

Есть же стандарты, нормальные формы и т.п.
Насколько это правильно с точки зрения правильного конструирования БД?


 
Johnmen ©   (2004-02-26 18:02) [6]

Проблема с идеологией хранения или отображения ?


 
Ozone ©   (2004-02-26 18:03) [7]

To Johnmen

с идеологией...


 
Johnmen ©   (2004-02-26 18:03) [8]

Структура будет определяться тем, насколько удастся формализовать "изменение".


 
Sandman25+1   (2004-02-26 18:03) [9]

[5] Ozone ©   (26.02.04 18:02)

Хранить можно в одном виде, показывать в другом. Это никак не связано между собой.


 
Ozone ©   (2004-02-26 18:06) [10]

TO Sandman25+1

Дык хранить надо правильно, так?


 
Vlad ©   (2004-02-26 18:07) [11]


> Ozone ©   (26.02.04 18:06) [10]

Чем правильно есть - вилкой или ложкой ?


 
Ozone ©   (2004-02-26 18:08) [12]

TO Vlad

Смотря что есть...


 
Sandman25+1   (2004-02-26 18:09) [13]

Можно так:

mod_main(id автоинкремент или генератор, id_computer INT, date_modif DATE, login INT или CHAR, ...)

mod_details(id из mod_main, старое значение, новое значение, ...)


 
Vlad ©   (2004-02-26 18:09) [14]


> Ozone ©   (26.02.04 18:08) [12]

Правильно есть тем, чем тебе удобнее


 
Ozone ©   (2004-02-26 18:12) [15]

Vlad
Ты же сказал "чем правильно", значит есть какие-то правила исходя из которых мы должны выбрать. Правильно?


 
Vlad ©   (2004-02-26 18:13) [16]


> Ozone ©   (26.02.04 18:12) [15]

Это правило я привел в 14 посте


 
Sandman25+1   (2004-02-26 18:13) [17]

[15] Ozone ©   (26.02.04 18:12)

Прочитайте про нормализацию. Все равно всю книжку мы тут Вам не перескажем.


 
Ozone ©   (2004-02-26 18:14) [18]

Может быть ты по-своему и прав, но позволь мне не согласиться.


 
Ozone ©   (2004-02-26 18:16) [19]

TO Sandman25+1[17]

Мне не нужно пересказывать, про нормализацию я знаю.
Просто изначально я задавал вопрос с надежной, что может быть есть другое решение (без создания иерархии)


 
Sergey13 ©   (2004-02-26 18:18) [20]

2Ozone ©   (26.02.04 17:52)  
>Написал клиент/серверную программу которая собирает информацию о компьютерах из локальной сети (каждый месяц).
Автоматически? Круто.
Не понятно зачем и что ты хочешь учитывать. Количество дисков с группировкой по маркам и емкостям? Наличие видюх с 3д и их соотношение с неимеющими 3д?

ИМХО 3 таблицы (если простенько)
1Компьютер
2Комплектующие
3Движение комплектующих
Если усложнить, то добавить на 2 несколько уточняющих справочников. В общем чем то похоже на склад. Развивать конечно можно бесконечно.
Важно знать, как вы покупаете новые. Я видел контору где покупали комплектуху партиями по 100/200 штук и сами собирали/апгрейдили. Тут конечно задача несколько другая.


 
Johnmen ©   (2004-02-26 18:18) [21]

В общем и целом 2 таблицы. Одна описывает изменяемые сущности (компьютеры), другая - сущности изменений по каждому к-ру.


 
Sandman25+1   (2004-02-26 18:20) [22]

[19] Ozone ©   (26.02.04 18:16)

>Мне не нужно пересказывать, про нормализацию я знаю.

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


 
Ozone ©   (2004-02-26 18:21) [23]

Т.е. получается так - если конфигурация комп-ра изменилась, то его комплектацию я заношу в 1-ю таблицу, а старую запись переношу во 2-ю (соотв. связывая ее с первой)?


 
Vlad ©   (2004-02-26 18:21) [24]


> Ozone ©   (26.02.04 18:14) [18]

Если делать все четко по правилам (к примеру правилам нормализации) - то работа с такой базой не всегда удобна разработчику. Иногда приходится умышленно прибегать к денормализации чтобы получить более удобную схему.

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


 
Johnmen ©   (2004-02-26 18:22) [25]

>Ozone ©   (26.02.04 18:21) [23]

Нет. Все изменения в одной таблице...


 
Sandman25+1   (2004-02-26 18:23) [26]

[23] Ozone ©   (26.02.04 18:21)

Не надо ничего связывать.
select * from table where computer=:computer order by date_modif легко получает Вашу "иерархию".


 
Ozone ©   (2004-02-26 18:24) [27]

TO Johnmen [25]

Не понял. Как?


 
Johnmen ©   (2004-02-26 18:28) [28]

>Ozone ©   (26.02.04 18:24) [27]

Пока ты ничего не сказал про степень формализации, то
запись: field1 id комп., field2 датавремя, field3 varchar "Сняли мы этот глючный винт и поставили IBM на 40"


 
Deniz ©   (2004-02-27 07:43) [29]

запись2: field1 id комп., field2 датавремя+1день, field3 varchar "Дело оказалось не в винте, пришлось заменить Windows на Linux"


 
Ozone ©   (2004-02-27 08:31) [30]

TO Deniz [29]
"датавремя+1день" быть не может - компы опрашиваются 1 раз в месяц.


 
Sergey13 ©   (2004-02-27 08:56) [31]

2Ozone ©   (27.02.04 08:31) [30]
Опиши нармально - что за инфа у тебя есть и что ты хочешь с нее иметь. Диапазон решений по тому что ты написал - от 1 таблицы до дофига.


 
Ozone ©   (2004-02-27 12:36) [32]

Sergey13 [31]

Информация - практически вся конфигурация системы.
Необходимо - вести "историю" копмьютера.

Да, кстати, что можно взять за первичный ключ?


 
Sergey13 ©   (2004-02-27 14:01) [33]

2Ozone ©   (27.02.04 12:36) [32]
Да я про другое.
Например: можно обойтись и одной таблицей, куда напихать кучу полей. Например типа hdd=2 и hdd_size=80 из чего следует что есть 2 харда общей емкостью 80 гектар. Если такой инфы хватит, то и делай одной таблицей. Изменилась конфигупация создай копию этой записи с измененной инфой + некое поле(я) идентифицирующее версию комплектации и срок ввода в действие.
Если же надо отслеживать например серийные номера комплектухи, срок ее гарантии, статистику по моделям и т.п., то структура ессно будет, мягко говоря, несколько посложнее... 8-)
Если же надо сравнивать общее количество мегагерц в бухгалтерии с мегагерцами в плановом отделе в разрезе среднего возраста юзеров с учетом налоговых льгот, тут уж и до задачи класса ERP недалеко. 8-))))

ЗЫ: А у нас мужики-электронщики завели себе файлик в Ворде. И довольны.... 8-)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.039 c
7-1072692942
Romkin
2003-12-29 13:15
2004.03.28
TRichTextBox, определение размера текста


9-1062407105
Spayker
2003-09-01 13:05
2004.03.28
Установка GlScene на Delphi7


14-1077873616
Тимохов
2004-02-27 12:20
2004.03.28
Может кто видел людей у метро, предлагающих, пожилым


9-1062855848
G A M E R
2003-09-06 17:44
2004.03.28
Как добавить сюда (на дельфи мастера) файл?


3-1077721146
Uran
2004-02-25 17:59
2004.03.28
Ошибка отображение символов кирилицы dbf файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский