То, как смоделировать это [Сети, детализирует в сообщении] в базе данных для эффективности и простоты использования?

В IntelliJ можно пролистать историю последних мест, отредактированных с помощью «Last Edit Location». Eclipse имеет аналогичную функцию, но Eclipse возвращается только на один уровень места редактирования.

Наличие истории, а не только одного уровня, который предлагает Eclipse, является отличной возможностью для повышения производительности: она действует как форма автоматического добавления закладок, поскольку вы часто хотите вернуться назад к местам, где вы вносили изменения. , Я использую эту способность несколько раз в день и чувствую боль от ее отсутствия, когда меня просят использовать Eclipse для чего-либо.

6
задан agiliq 29 June 2009 в 05:17
поделиться

2 ответа

Я бы порекомендовал использовать базу данных графов. Похоже, что в настоящее время доступна только одна реализация, и это Neo4j . Он написан на Java, но имеет привязки к Ruby и Scala (Python в разработке).

Если вы не знаете Java, вы, вероятно, не сможете найти ничего похожего на какой-либо другой платформе (пока), к сожалению. Однако, если вы знаете Java (или, по крайней мере, хотите учиться), это того стоит. (Технически вам даже не нужно изучать Java из-за привязок Ruby / Python.) Neo4j был создан именно для того, что вы пытаетесь сделать. Вы столкнетесь с кучей проблем, пытаясь реализовать это в реляционной базе данных, когда вы сможете сделать то же самое всего в нескольких строках кода Java, причем гораздо более эффективно.

Если это так. ' Это не вариант, я все же рекомендую посмотреть другие типы баз данных, такие как объектные базы данных . Реляционные базы данных не были созданы для такого рода вещей, и вы бы испытали больше проблем, пытаясь сделать это в РСУБД, чем переключаясь на другой вид базы данных и изучая ее.

5
ответ дан 16 December 2019 в 21:45
поделиться

Я не понимаю, почему что-то не так с использованием реляционной базы данных для этого. Таблицы, определенные в вопросе, являются отличным началом. При правильной оптимизации вы сможете держать свою производительность под контролем. Я лично думаю, что вам понадобится что-то серьезное, чтобы оправдать отказ от такого универсального массового продукта. Вероятно, вам в любом случае понадобится RBDMS в проекте, и существует несравнимое количество законных вариантов во многих ценовых диапазонах (даже бесплатных). Вы' я получу качественную документацию, будет доступна поддержка, и у вас будет большой запас высококвалифицированных разработчиков, доступных в резерве вакансий.

Что касается этой модели взаимоотношений с самими собой (пользователи присоединяются к другим пользователям), я рекомендую изучить рекурсивные запросы. Это не позволит вам выполнить каскад индивидуальных запросов для поиска трех уровней взаимосвязей. Рассмотрим следующий метод SQL Server для выполнения рекурсивных запросов с CTE.

http://msdn.microsoft.com/en-us/library/ms186243.aspx

Он позволяет указать, насколько глубоко вы хотите использовать подсказка MAXRECURSION.

Затем вам нужно подумать о способах оптимизации. Это начинается со стандартных передовых практик для настройки ваших таблиц с соответствующими индексами, обслуживанием и т. Д. Это неизбежно заканчивается денормализацией . Который' Это одна из тех вещей, которые вы делаете только после того, как уже испробовали все остальное, но если вы знаете, что делаете, и используете передовые методы, ваш прирост производительности будет значительным. В Интернете есть множество ресурсов, которые помогут вам узнать о денормализации, просто найдите .

3
ответ дан 16 December 2019 в 21:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: