I got a question from a developer whether they should use SharePoint lists or database tables to hold the data for his application. This is a fair question and as a consultant I will start with the standard answer: It depends.
I will follow up that answer with the standard consultant question: what are you trying to do? There generally isn’t one answer for any technology choice. We need to take as many factors into account as possible. Who will be maintaining the data? Will the data only be used in your SharePoint application or does it need to be available across the enterprise and used by a multitude of systems? What standards are already in place for application data? Are there security concerns for this data? All of these questions and more need to be answered in order to decide where you should store your data.
SharePoint has come along way since I first started using the 2001 products. But just because you can use SharePoint lists to hold all your application data doesn’t mean you should. My general rule is if there is little or no usage of the data outside of your SharePoint application, you don’t need complex table joins and it doesn’t need to be edited by other systems then it is acceptable to use a SharePoint list. If you go beyond these limits I heavily lean toward using a DBMS. Could you still use lists outside of these conditions? Yes, but it will probably cost you more in development time across all of your systems. Just remember, just because you have a hammer, everything isn’t a nail.