title: What is a recommended schema / database design to store custom report settings in my sql database?
body: <p>I am building a tool to allow people to create customized reports.  My question resolves around getting the right database schema and design to support some custom report settings. </p>
  
  <p>In terms of design, I have various <strong>Slides</strong> and each <strong>Slide</strong> has a bunch of settings (like date range, etc).  A <strong>Report</strong> would basically be an ordered list of slides</p>
  
  <p>The requirements are:</p>
  
  <ol>
  <li>A user can create a report by putting together a list of "Slides" in any order they wish</li>
  <li>A user can include the same slide twice in a report with different settings</li>
  </ol>
  
  <p>So I was thinking of having the following tables:</p>
  
  <p><strong>Report Table:</strong>  Id, Name, Description<br>
  <strong>Slide Table:</strong>, Id, Description<br>
  <strong>ReportSlide Table:</strong>  ReportId, SlideId, Order, SlideSettings</p>
  
  <p>my 2 main questions are:</p>
  
  <ol>
  <li><p><strong>Order</strong>: Is this the best way to manage the fact that a user can order their slides on any given report</p></li>
  <li><p><strong>SlideSettings:</strong> since every slides has a different set of settings (inputs), i was thinking of storing this as just a json blob and then parsing it out on the front end.  Does anything one think this is the wrong design?  Is there a better way to store this information (again, each slide has different inputs and you could have the same slide listed twice in a report each with different settings</p></li>
  </ol>