designing data model similar to Power Point Presentation slides
It sounds like you are trying to store a whole lot of information, as if you are creating an entire Powerpoint application. Not a bad thing, but as you have indicated you do not want to just use Slide Templates in files, you have to store everything about the Slide (both Templates and user Slides) in the database. This would enable you to reproduce the template on the fly based on the data saved once the user creates their own Presentation, based on a template.

I would approach this with a data model that uses an Entity-Attribute-Value method to store (what could be) a large number of Elements on your slides. The following is the data model I have come up with for you:



The interesting part, that you are probably struggling with, is on the right hand side of the model. SlideElement is an Element object that appears on your Slide. Each Element has a defined set of Attributes as described by the type of element you are adding.

This may not make much sense to you unless you see some example data as shown below:



So each Attribute defines the Attributes of an Element - an Element (could also be called "Control" or something similar) being a text box/picture/video, in the above data.  Elements are placed on Slides at particular locations, defined by the X/Y Position as described on the Element table and with a particular size (Length/Width). The Element entity, along with all the Attributes, is an instance of an Element, with its value described by the "Value" field. For a text box, the value would be its text/text size/colour/back colour etc, for videos/photos, their location/format/encoding/type etc.

Note the "PresentationType" field on the Presentation. I have put this as the identifier to decide if the file is a "Template" or "User" presentation. If the user chooses one of the Template files, the Presentation/Slide/SlideElement/Element rows would all be copied from the "Template" tables and re-inserted for the User tables. The default Element values would therefore be used to start with, with the user overwriting these as they work on their Slide design. The user would be able to move the elements around their slide as well, this would be reflected in the "SlideElement" table XYPos values as well as the size of the Element. The user could also add Elements, like a new text box or photo, which would create a new set of Element rows based on what was added. You would need a default list of Elements to add for each type, that step I haven't modelled but could be done easily.