Add fields to Site class

I'm building a site where I'd like to customise the Site class in the CMS module to add some fields. One example, this is a multisite where some sites represent countries, others brands. For navigation purposes I need to distinguish between these. Ideally I'd add additional fields to the Site class in CMS but this class is not customisable. What are my options?

Recent Answers

Can ou provide a little more information about why you need to do this? You said You end to do it for multi sites, but why do you need the additional fields. How are you structuring your sites that you cannot ell the difference through the hierarchy or by data set at the parent level?

Virgil, to clarify I basically want a simple way to query my sites to return a subset based on a custom boolean property of those sites. Can you explain what you mean by "data set at the parent level"? Do you mean at master page level? If I can configure each site to have certain boolean properties I don't mind where it occurs, but I'm not clear how I'd do what you suggest.

Brenden, I can see how your answer would work, although I'm concerned if may affect future upgrades?

Would you be so kind as to briefly explain how you might use a custom table? Do you mean define a custom table with a 1-to-1 relationship between its records and my sites?

Basically Brenden's advice seems like the best one for a scenario you are describing. If you do not modify any built-in fields in the Site class but only add a few new fields, you should be safe as far as future upgrades are concerned.

In case of any more extensive changes, custom tables should be a way to go and setting up 1-to-1 or N-to-M relationships (depending on your needs) between records in the custom table and site-specific data is another way how to achieve it.