In my opinion, there is no "best" classification. I'd follow testerab's links and do some more research - the context in which you're working will give you a good idea of what will work best for you and your situation.
For instance, where I work, bugs are classified by a combination of the following: which module of the system in test they occur in; whether they were found by a tester or by a customer; how severe they are. High-severity bugs found by customers in any of the financial modules (sales journalization, tax calculations etc) or regular operation modules (making sales, taking orders and so forth) are corrected first.
I don't think there's a way around classification schemes turning into triage schemes - my experience is that this seems to be intrinsic to software testing.