LINUX.ORG.RU

Выбор структуры БД

 ,


0

1

Никогда раньше не имел дела с базами данных, но вот, приперло. Ситуация такова: имеется список из более чем 3000 коммутаторов, у каждого из которых расписаны порты (с чем коммутируются, по какому VLAN и прочее), необходимо из обилия этих данных состряпать базу (для экспериментов взгромоздил себе MySQL). Вопрос в следующем: каким образом лучше организовать данные? Делать для каждого коммутатора таблицу? Или сделать одну таблицу, где в каждой строке будет достаточно полей для самого емкого коммутатора? Третий вариант? Занимаюсь сим по личной инициативе, развития для. Заранее спасибо!


Нифига не понял. Можешь написать что-то вроде схемки или графа связей, кто под кем лежит?

P.S. Пока на основе сказанного я бы делал либо одну таблицу, либо связанные таблицы.

vurdalak ★★★★★
()
Ответ на: комментарий от vurdalak

Цель как раз в том, чтобы потом из полученной базы сделать граф связей всей сети. Сейчас на каждый коммутатор есть таблица в html, где расписаны назначения линков (порт ответного коммутатора или оборудования клиента и прочее).

mr_f
() автор топика

почитай любую нормальную книгу по бд, про проектирование, и что такое нормализация

fornlr ★★★★★
()
Ответ на: комментарий от mr_f

Дай мне структуру на пастбине. Я не знаю, как ты описываешь эти связи.

vurdalak ★★★★★
()
Ответ на: комментарий от liathit

В том-то и вопрос. Я не знаю, много ли это, 3000 таблиц. Сами таблицы будут маленькими.

mr_f
() автор топика

Таблица с коммутаторами (идентификатор коммутатора, имя и прочее), таблица с портами (идентификатор порта, идентификатор коммутатора-«владельца» и прочее), таблица связей (порт один, порт два, тип связи).

CARS ★★★★
()

Насколько понял, лучше первый вариант.

Deleted
()

Таблица коммутаторов COMM

COMM.ID - Идентификатор
COMM.Name - Название
COMM.Model - Модель
COMM.Quantity - Количество портов
COMM.Place - Размещение
COMM.URL - Адрес админки и т.п.
COMM.Type - Тип (пограничный, конечный и прочее)
+ два три поля для резерва

Таблица портов коммутатора COMMPORTS.

COMMPORTS.ID - Идентификатор порта
COMMPORTS.COMM - Идентификатор коммутатор (-COMM.ID)
COMMPORTS.Num - Номер порта
COMMPORTS.Type - Тип порта (Up/Down)
COMMPORTS.UPLINK - Идентификатор порта uplinka (COMMPORTS.ID)
COMMPORTS.DOWNLINK - Идентификатор порта downlinka (COMMPORTS.ID)

Через COMMPORTS.UPLINK, COMMPORTS.DOWNLINK строить иерархию. По хорошему еще таблицу VLAN-ов можно замутить

TEX ★★★
()
Ответ на: комментарий от CARS

ТС, это правильный ответ.

таблица с портами

таблица с портами/VLANами либо +1 таблица под VLANы

// мелкофикс

anonymous
()
Ответ на: комментарий от anonymous

да, но не очень красиво хранить например 200 записей с одинаковым названием «cisco super commutator l200 gen2»

ZuBB ★★★★★
()

Обычно таблица=сущность. Соответственно, для коммутаторов таблица. Отдельный коммутатор - это строка.

BattleCoder ★★★★★
()
Ответ на: комментарий от ZuBB

доо, зато охрененно красиво городить огород в коде, совершенно бессмысленный при том.

g стив йегг портрет нуба

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от MikeDM

На сети уже крутится Заббикс. Но настроен кривовато, а у меня доступа к админкам нету. Да и хочется мне большего, чем он умеет. Вот и решился городить огород.

mr_f
() автор топика
Ответ на: комментарий от mr_f

На сети уже крутится Заббикс. Но настроен кривовато, а у меня доступа к админкам нету. Да и хочется мне большего, чем он умеет. Вот и решился городить огород.

для каталогизации достаточно будет взгромоздить GLPI

MikeDM ★★★★★
()

делать для каждого коммутатора таблицу?

да ты упоролся.

зырь:

когда много однородных (т.е можно их набором(одним и тем же) полей базовых типов) данных то это таблица - ну или набор таблиц (для уменьшения «паразитности» и приведения в ту или иную циферную форму)

когда же данные коечто о кое чём - то заруливает ключ-значение.

вообще то эмульнуть первые на вторых проще чем вторые на первых ( однако в обоих случаях ненужные расходы на эмуляции)

так как всякие страшные ораклы и прочие решают воопросы промышленного учёта крупносерийного производства то и реляционные базы рулят

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

для твоей задачи стоит взять набор реляционных таблиц ибо коммутаторы «изделия массового производства» - т.е таблица марок , какой комутатор какой марки , ну и таблица топологии - ну тут сущьности ещё какие .

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

qulinxao ★★☆
()

три таблицы: таблица коммутаторов, таблица портов (подчинение первой), таблица связей (порт1, порт2)

все. не городите огород.

bvn13 ★★★★★
()

Да на это всё надо! Сделай для каждого коммутатора свой текстовый файлик... Потому как реляционки имеют толк только если бд сделана правильна и к БД приставлен скрипткидди с SQL-прошивкой в голове.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.