Web Application Dev
I am new to programming but not new to the IT industry.
I have been researching and training in a few areas, but seem to have landed on the PHP/MySQL track for what I would like to do.
I would like to create web apps that users can create an account, enter data, have access to their own data, and also view reports based on the data they entered. They content would vary depending on the purpose of the application, but the concepts are the same. The goal is to be able to extract KPI's from the data that is entered over time and display dashboard type reporting, as well as the ability to download excel/pdf versions if a user would like to. I would also like the ability to allow "companies" with multiple users to access to the same data - but may vary depending on permissions within that organization.
Am I going down the right path in choosing PHP and MySQL? I have looked at a few web based technologies and have determined that will be the most scalable and effective approach. Any advice on what to learn or focus on? I appreciate any help that you can offer.
It is certainly a viable platform for this. You could just as well do it with pretty much any other web programming language and DBMS, such a .NET/C# and MS SQL or Ruby (with Rails) and PostgreSQL. A PHP/MySQL combo has the slight advantage of being available on pretty much any Linux web server as well as having a large user community that can give you support, but ultimately it comes down to what you are most comfortable working with or which one you want to learn.
Thanks for the reply NogDog. I had actually looked at the Rails/PostgreSQL option as well but opted for PHP simply based on the amount of community based support and content available.
I am looking to develop commercial applications that are based in the cloud. In the beginning I will be primarily targeting SMB sized businesses that need Enterprise level solutions without the Enterprise level budget. None of this is shocking I am sure, but I at least want to make sure I am heading in the right direction.
Based on the above scenario, should I be planning that each company would have their own DB, or am I ok to have multiple customers on the same DB but separated by permissions. If that was the situation, would it be done by a separate table for each customer within the database and assign permissions to users accordingly, or would they simply all use the same tables, but differentiated in a different way.
Any advice is very much appreciated!
I would opt for the single database with one set of tables. Include a "customer" table (or whatever makes sense as a name) that includes the static information about the customers, then add a "customer_id" column as a foreign key in each table that has items which are customer-specific. Any queries against that data can then be filtered in the where clause using the customer_id column.
Thanks for the help NogDog. I will keep that in mind while planning the structure of the DB.