@vaydimilmu

Как правильно спроектировать БД?

Добрый день!
Подскажите начинающему как правильно спроектировать БД:
есть таблица с данными о событиях\авариях, одно событие соответствует одному источнику(host), один источник может состоять в нескольких группах и перемещаться между группами.
tblevent: {id, time_start, time_end, name, type, hostid}
tblhost: {id, hostname, groupid}
tblgroup: {id, groupname}
По событиям будет считаться доступность(SLA) в разрезе групп. Как правильно будет связать события с группами? Вижу следующие варианты:
1. Создать таблицу соответствия между событием и группами tblevent2group: {eventid, groupid}, в этом случае как правильно будет выбрать события за период по группе? Одним запросом вытаскивать все события по группе из tblevent2group, а следующим вытаскивать события из tblevent и фильтровать их по времени?
2. В tblhost добавить поля и хранить историю перемещения хоста между группами tblhost: {id, hostid, hostname, date_start, date_end, groupid}
3. в таблицу tblevent добавить поле в котором будут перечислены id групп к которым оно относится, но тогда как правильно будет написать запрос для выборки событий по одной группе?
Заранее благодарен за ответы
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы