I have several test classes, each with several test methods. All tests use the same test database in the background. Each test class
Use method interceptors (=write and enable a custom one) to control the ordering.
Also, each class might use its own database sandbox: wrapping each test class into a transaction might possibly help.
Having individual suffix for tables/db set up for each class would even let your test methods run in parallel (I guess the first two options would not).