powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше реализовать (прошу помощи)
5 сообщений из 5, страница 1 из 1
Как лучше реализовать (прошу помощи)
    #35833066
almerti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех участников форума

Задача: реализовать систему, формирующую карту сайта, учитывающую вложенность страниц.
Остановился на вопросе, как лучше спроектировать бд
Для отдельно взятого сайта это легко представляется в виде матрицы

\\\ a \ b \ c \ d
a\ 0 \ 1 \ 1 \ 1
b\ 1 \ 0 \ 1 \ 1
c\ 0 \ 0 \ 0 \ 1
d\ 1 \ 0 \ 1 \ 0

шапки строк -страницы имеющие ссылки
шапки колонок -страницы на которые ссылаются
По первой строке можно сказать, что страница "a" содержит ссылки на "b","c","d". По второй -что страница "b" имеет ссылки на "a","c","d" и т.д.

Таких сайтов в базе будет множество. Собственно вопрос стоит в выборе субд и в проектировании бд.
Вот то как реализовал бы это я (изображение таблиц в приложенном файле)


Несколько настораживают размеры таблицы связей страниц. Берём сайт на 1000 страниц, предположим, что на каждой странице в среднем по 30 ссылок на другие страницы этого сайта. Таким образом получаем, что на один сайт с тысячью страниц в таблицу связей запишется 30к записей. Вскоре таких сайтов образуется 1000, а потом 2000 (а это уже десятки миллионов строк).
Как вы думаете стоит ли так проектировать бд, как на изображении? Эта таблица хоть и всего с двумя атрибутами будет расти достаточно быстро и работа с этой таблицей будет вестись достаточно активно, то есть надо будет производить выборки для того чтобы определить вложенность страниц того или иного сайта. Быть может есть ещё какие то варианты хранения.
И ещё один моментик -порекомендуйте пожалуйста СУБД для этого дела. Желательно бесплатную. Сам выбрал бы MySQL, потому как её знаю лучше других, но быть может для таких целей есть и более оптимальные варианты

Прошу прощения, если расписал что-то не очень понятно. Просто раньше ничего сложного проектировать не приходилось. И пишу вероятно, как дилетант
...
Рейтинг: 0 / 0
Как лучше реализовать (прошу помощи)
    #35834108
vinger4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а по этой огромной табличке будут только выборки? инсертов не будет?
...
Рейтинг: 0 / 0
Как лучше реализовать (прошу помощи)
    #35834424
Guest121212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vinger4,

Insert-ы будут. Как только просканирован новый сайт, то
(1) домен заносится в а Таблицу Сайтов
(2) все его страницы заносятся в Таблицу Ссылок
(3) все связи между страницами заносятся в Таблицу Связей

то есть проссканировав сайт на 1000 страниц в таблицу связей может войти 30000 записей.
в-принципе таблицу связей как и таблицу ссылок можно будет периодисески чистить, потому как информация в них во первых будет естественным образом устаревать(сайты развиваются) и во-вторых если карта определённого сайта открывалась последний раз довольно-таки давно, то возможно и хранить информацию о ней без надобности, так как она попросту не востребована.
То есть очищать эти 2 таблицы в принципе можно. но всё равно это не панацея. даже за месяц может скопиться информация о нескольких десятках тысяч сайтов, а это может вылиться в 300 миллионов строк в таблице связей (если брать сайт в среднем по 1000 страниц и с 30-ю ссылками на каждой)
...
Рейтинг: 0 / 0
Как лучше реализовать (прошу помощи)
    #35837292
almerti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну чтож никто не может помочь ? Неужели такой сложный вопрос я задал?
...
Рейтинг: 0 / 0
Как лучше реализовать (прошу помощи)
    #35841892
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из
PageIDTo_PageID121314212331324243
Сделать
PageIDTo_PageIDBack121131140231420430

C уважением,
AlexandrN©
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше реализовать (прошу помощи)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]