Here's the first design question I will throw out for consideration... how will the KB be searched?
I'll present two options, you may have other ideas as well.
First idea, integrate with the existing phpBB search process. This has advantages:
- People can search the forum + the KB at the same time
- While it does have its issues, especially on large forums, the phpBB search algorithm can be very effective on small to medium boards
- We would not have to write our own search code, we would simply have to MOD the existing search
- Larger boards already have huge search word match tables, this would increase the problem
- There's no facility for searching for an exact phrase in the standard search algorithm
I personally like this idea, primarily because of the way I would use the KB. The ability to search the KB and the forum at the same time is very attractive. I would envision having the KB articles (a smaller set, I would expect) displayed first on the search results pages, followed by forum topic matches. So this idea gets my vote, despite the added burden on the search tables. Of course this is open for discussion / your approval.
Second option, use a custom KB search process. In this case, you would have one search interface for the forum, and a second interface for the KB. But by doing that, you avoid the overhead of the normal phpBB search process, and you could potentially provide options like "search by phrase" that are not available. Advantages
- Independent of phpBB's search, so avoids overhead for the search tables
- May be less likely to "break" during the upgrade to Olympus
- Custom search process can provide custom search features like a phrase search
- We have to write it
- Board members have to remember to search more than one place for answers
As I suggested, I am in favor of using the first option. If you agree, then that helps start the design process as we know that we have to integrate the KB articles into the standard search process. If you elect to go that route, here's another idea that you might consider...
Instead of a separate database for KB articles, what about simply using topics and posts? With some creative coding, we could set up a forum called the "Knowledge Base" that doesn't appear on the normal index. But by going that route, we might be able to reuse a lot of existing phpBB code, such as the posting, the search management, the permissions system, the paging...
The KB article would be post #1 in the topic. Any comments on the article would be additional posts on the topic.
There's a lot more to discuss, and I don't know if you have already considered and rejected this idea, but I thought I would toss it out for your thoughts. Even if you don't choose to do this, we still need to make a design decision about how we'll provide a search feature. I believe that even if the KB articles are stored in a different set of tables (meaning don't use the topic / post idea in the prior paragraph) that we can still use the standard search tables.
The current search tables include the post id and word id. What we would need to add would be a "source type" field, so if the source type is 'F' then we know that's a forum post, or if the sourcetype is 'K' we know it's a knowledge base article. Or something like that. We can even leave the source type blank for forum posts, so that the table takes less space, and doesn't require changes to the standard post process. That's probably a better idea.