Необходима подходящая структура базы данных (и / или) базы данных - PullRequest
2 голосов
/ 15 июня 2011

Ну, я воспользовался помощью Google, Stackoverflow и всего, что я мог найти, сделал столько, сколько мог, но, похоже, я не могу найти точный ответ! У меня есть несколько запросов, и я хотел бы получить ответы от сотрудников базы данных, а также от программистов и пользователей фреймворка.

Из языков программирования я знаю C / C ++, Java и Python. Я предпринял проект CMS, который потребовал бы частых C & R из CRUD. Проект будет иметь по крайней мере 50 тысяч пользователей. С ног до головы проект был полностью проработан, и теперь мне нужно его кодировать и запустить онлайн.

Что ж, я хочу использовать Neo4j в качестве базы данных, поскольку его модель представления данных (узлы и отношения) наиболее близка к реальной модели проекта. Теперь у neo4j есть привязки для разных языков, и одним из них является Python (чьи привязки python очень старые, jpype не обновлялся с давних времен). Я подумываю о переходе на какую-нибудь Java-среду, но затем я оставляю эту идею, потому что лично я не слышал о Java-среде. Но один из моих партнеров говорит мне пойти на Zend (PHP), так как он обладает некоторой функциональностью, которая позволяет нам выполнять код Java. Не замедлит ли это код? Я имею в виду выполнение кода одного языка на другом языке ...

Итак, все сводится к этому:

1) База данных: Я бы хотел перейти на Neo4j. Но хорошо ли это, когда коэффициент масштабируемости начинает действовать? (Из того, что я мог собрать из Google, нет проблем с масштабируемостью).

2) Какие рамки использовать в случае Neo4j? Мне потребовалась бы структура, которая могла бы обрабатывать тонны запросов и больших данных, поскольку пользователи проекта много создавали и читали данные.

П.С .: Я знаю, что это длинный вопрос, но не могу записать его в меньших словах!

Ответы [ 3 ]

3 голосов
/ 15 июня 2011

Я не могу говорить о масштабируемости или пригодности Neo4J для вашего конкретного проекта.

Однако я бы настоятельно не рекомендовал бы вам пытаться смешивать и сопоставлять языки, такие как Java иPHP.Намного легче придерживаться лучшего для вашей конкретной задачи.Я также настоятельно советую вам не использовать JNI для чего-либо , если у вас нет другого выбора.Java достаточно быстр, чтобы вам почти никогда не требовался JNI для производительности.

Тем не менее, можно запустить Neo4j в режиме «полный сервер», а затем получить доступ к нему через приложение PHP или Python с помощью какого-либо драйвера черезсеть.Я просто не рекомендовал бы создавать уродливый гибрид PHP и Java на уровне приложений.

Некоторые достойные Java-фреймворки, которые вы могли бы проверить, включают:

Онидовольно стандартный в отрасли, и на всех них доступно множество хороших ресурсов.

2 голосов
/ 15 июня 2011

Что касается мини-вопроса о совместимости языков, Java предоставляет интерфейс JNI, который позволяет JVM и пользовательскому коду совершать вызовы на другие языки и наоборот.Когда собственный код (например, код C, вызываемый Java, или Java, вызываемый из C), фактически выполняется в своей естественной среде, то есть нет потери производительности с точки зрения фактического выполнения.

0 голосов
/ 17 июня 2011

Neo4j как автономный сервер также имеет REST API: http://docs.neo4j.org/chunked/milestone/rest-api.html, если вы можете встроить свои запросы в отдельные запросы REST, нет необходимости использовать встроенный встроенный neo4j.Если нет необходимости использовать встроенный neo4j, вы можете выбрать любой язык по вашему выбору.

Что касается масштабируемости, в последнее время neo4j можно использовать на Azure , поэтому его должно быть довольно легко масштабировать.Чтобы узнать больше о том, как масштабировать neo4j, перейдите на эту страницу на neo4j.org .

ОБНОВЛЕНИЕ: в новейшей версии Neo4j добавлена ​​поддержка нового языка запросов - http://blog.neo4j.org/2011/06/kiruna-stol-14-milestone-4.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...