I am producing a custom CMS aimed at small business websites. There are several reasons for deciding to "roll my own" including flexibility and to gain valuable experience.
I am creating this in PHP5 and MySQLi. I have already got allot of the ground work done and I have several small websites running off of the system already, however, I am not happy with the foundations so far and feel I should have planned better!
I am by no means a PHP or MySQL expert and it is dawning on me that I don't know half of what I thought I did and that my technical and practical knowledge of both need a great deal of improvement, starting with basic database structure.
Currently, I have around 4 months of programming work done and feel that it would be best to halt progress at the current version (0.5.0) and re-do the database structure and programming to be more robust, scalable and efficient before causing an even bigger problem later.
As such here is my new proposed database scheme:
[ATTACH]4450[/ATTACH]
I would really appreciate some advice, comments and opinions on this database scheme: What have I done that you would'nt?
What have I overlooked?
What amature mistakes have I made?
How could this be improved?
etc
Please keep comments constructive and on topic. I hope that this post is not too long and contains plenty of information for the questions asked and situation that surrounds them.
Please note:
I have no idea, at present, how to handle joins in my SQL query's however this will obviously be something I work on before going ahead with this.
I am a front end developer by trade. Programming is something of an interest that I have a good understanding of and interest to learn further.
My current database has been modified during several stages of the CMS construction which has caused several issues including poor naming conventions and fields which no longer have a specific purpose. The tables are not split into logical groups and as such the pages table at present contains all of the data included in the scheme above for each table that references the "cmsPages" table, not good right!?
I really want this to turn out usable and something I can be proud of, hence why I am happy to re-start at this stage.