Try me ... and some other regulars in this forum. That's why we are here for. To help you guys out in the Database jungle ...
But don't question so much about yourself. It looks like you realy tried and you ended up with a acceptable sollution for yourself. That's the most important. If the implementation would lack any DB 'rules', you might not be able to get it working at all. So the fact that it is working (at least for your purposes) is a first indication that it can't be that bad.
And yes, we (the guys with 10+ years of DB design experience) probably can find some things that might be implemented smoother, but that is just the experience talking.
So post the design for starters and we'll have a look at it.
... and no one is talking about $$$ here, it's a free forum with free advice and anyone is free to answer ... or not
Gr,
Yveau