It seems to me like you're effectively wanting to make a decision matrix.
So... As said above, ICD and SNOMED CT going to have codes for your diseases and symptoms. I'd lean toward SNOMED CT due to the way it organises concepts. Essentially from broad to specific. That way users can enter very specific symptoms, and your matrix only needs to have symptoms as specific as is required.
For example you can say "vomitting" is a symptom of "alcohol poisoning" in your db. And if a user enters "projectile vomitting" the SNOMED structure recognises this as a type of vomitting.
However - Symptoms don't make the disease, and most diseases have a huge array of 'possible symptoms' (Which is why SNOMED CT doesn't have such relationships). So it's not an easy undertaking. Hence why those who've made such db's (as you've linked to) are reluctant to share their IP, at least without $$$.
If you're going to make your own, here's some tips.
- only diseases relevant to your use case - eg. Aged care doesn't require paediatric disorders;
- exclude non-specific symptoms;
- rank your symptoms by frequency - eg. 60% of pregnant women have morning sickness, where as 100% have an HCG > 10*
Hope this helps. And good luck.
edit- there is a similar thread on LinkedIn
*fabricated statistic :).