What does your data structure do, exactly? I'm not understanding the logic, and a good grasp of the logic is needed before a database structure can be suggested. Can you give a few examples of your dictionary data and what you're searching against it with?