Я задавал один и тот же вопрос в течение нескольких дней на форумах оракула, но ответа не последовало :(
ссылка: http://forums.oracle.com/forums/thread.jspa?threadID=2162345&tstart=0
Привет, я создаю BBS, используя BDB в качестве внутренней базы данных, базы данных форума, базы данных тем и базы данных постов в одной среде. Это веб-приложение BBS является многопоточной программой. Если пользователь выбирает один форум, его темы будут перечислены в порядке последнего ответа, при выборе одной темы сообщения будут перечислены в порядке времени ответа.
struct forum {
UInt16 forumID;
string forumName;
string _lastPoster; // who is the last one replied in this forum
};
struct topic {
UInt32 topicID;
UInt16 forumID; // topic comes from this forum
string title; // topic title
UInt64 dateOfLastReply; // when last reply to this topic happen
};
struct post {
UInt64 postID;
UInt32 topicID; // post comes from this topic
string title; // post title as of topic
UInt64 dateOfPost; // when this post is created
};
Я создаю одну первичную базу данных и две вторичные базы данных для темы, первичный ключ - topicID, вторичные ключи - forumID и dateOfLastReply, соответственно, и я хочу показать первые 25 тем в последнем порядке времени ответа на первой странице браузера, вторые 25 тем на второй странице браузера и т. д.
при использовании SQL это будет: SELECT topicID FROM topic WHERE forumID = xx ORDER BY dateOfLastReply DESC
С точки зрения производительности, я хочу получить идентификаторы всех тем одного и того же форума, и нужно, чтобы они приходили в порядке времени ответа, а затем извлекать темы одну за другой на основе возвращенного идентификатора themeID, как я могу это сделать? думаю, я должен использовать соединения.
Кроме того, есть ли у вас какие-либо предположения о производительности поиска, учитывая тот факт, что поиск по темам будет происходить каждый раз, когда браузер захочет запросить следующую страницу, то есть 2-ые 25 тем этого форума?
DB_DBT_MULTIPLE полезен для меня?
спасибо.