Задача:
Есть список ip адресов таблица ipAddress поле ip с которым будем работать
Необходимо проверить пингуется ли данный ip, если нет то в поле dead_ping пишем True
После того как ip проверен меняем значение поля checked на True чтобы больше не проверять
После чего берем ip серверов которые пингуются и ищем домены которые хостятся на серве
Таблица ipToWeb, если по ip мы нашли домены пишем их в поле domain_address, а в поле ip_id пишем id айпишника по которому получили домены
В конечном итоге в таблицу domainInfo мы уже пишем информацию которую получили по домену, ссылаясь на его id в таблице ipToWeb
Как правильно спроектировать БД ?
Сейчас у меня два варианта действий:
Первый:
Второй:
В конечном итоге нужно вывести: ip, domain_address, domain_title, domain_headers
SQL:
DROP DATABASE ip_site_list;
CREATE DATABASE ip_site_list CHARACTER SET utf8 COLLATE utf8_general_ci;
USE ip_site_list;
CREATE TABLE ipAddress (
id INT(8) NOT NULL PRIMARY KEY AUTO_INCREMENT,
ip VARCHAR(15) NOT NULL UNIQUE,
checked BOOLEAN DEFAULT FALSE,
dead_ping BOOLEAN DEFAULT FALSE,
update_up TIMESTAMP # По дефоллу NOT NULL и DEFAULT -> NOW()
);
CREATE TABLE ipToWeb (
id INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
ip_id INT(8) NOT NULL,
domain_address VARCHAR(255),
update_up TIMESTAMP,
FOREIGN KEY (ip_id) REFERENCES ipAddress (id)
);
CREATE TABLE domainInfo (
id INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
domain_id INT(10) NOT NULL,
domain_title VARCHAR(255),
domain_headers TEXT,
update_up TIMESTAMP,
FOREIGN KEY (domain_id) REFERENCES ipToWeb (id)
);
INSERT INTO ipAddress VALUES (1, '95.183.15.59', TRUE, FALSE, CURRENT_TIMESTAMP());
INSERT INTO ipAddress VALUES (2, '178.248.232.5', TRUE, FALSE, CURRENT_TIMESTAMP());
INSERT INTO ipAddress VALUES (3, '95.183.15.66', TRUE, TRUE, CURRENT_TIMESTAMP());
INSERT INTO ipToWeb VALUES (1, 1, 'zaycev.fm', CURRENT_TIMESTAMP());
INSERT INTO ipToWeb VALUES (2, 2, 'toster.ru', CURRENT_TIMESTAMP());
INSERT INTO ipToWeb VALUES (3, 2, 'autokadabra.ru', CURRENT_TIMESTAMP());
INSERT INTO ipToWeb VALUES (4, 2, 'brainstorage.me', CURRENT_TIMESTAMP());
INSERT INTO ipToWeb VALUES (5, 2, 'tmfeed.ru', CURRENT_TIMESTAMP());