When creating Addons should we utilise the underlying database structure provided by ExpressionEngine for storing large numbers of items / information. For instance use channel entries? Or should you keep it all separate and craft your own tables / relationships etc?
If I were to take a stab at answering this myself, I'd probably say use as much of existing expressionengine tables infrastructure as possible as there isn't any great reason to re-invent the wheel. My only concern is how you might limit access to say channel entries (if you've used them) for your addon. Say if you want the user to edit information in a particular way (and it's not the standard EE way of doing it). Or is this the problem, should they be doing it the EE Way?
Is it / should it be handled differently if it's a custom Addon for one site you are working on, as apposed to creating a commercial addon?