Please start any new threads on our new 
    site at https://forums.sqlteam.com.  We've got lots of great SQL Server
    experts to answer whatever question you can come up with. 
    
        
            
                
                    
                        
                            
                                | Author | 
                                
                                 Topic  | 
                             
                            
                                    | 
                                         shapper 
                                        Constraint Violating Yak Guru 
                                         
                                        
                                        450 Posts  | 
                                        
                                        
                                            
                                            
                                             Posted - 2012-11-26 : 20:49:21
                                            
  | 
                                             
                                            
                                            | Hello,On a SQL 2008 database I need a table to hold information as follows:1 - Files (PDF, TXT, HTML, ZIP, PNG, MP4, ...)2 - Text (Insert through a form in the application)3 - HTML or other types of markup (Insert through a form in the application)4 - VIDEOS (HTML 5 Video (1 to 3 files), You Tube Video (Markup)), ...5 - IMAGES (PNG, GIF, ...)6 - AUDIO (HTML 5 AUDIO (1 to 2 files).So I ended up with some problems:A - One item can have 3 files (An HTML 5 Video should have 3 files);B - One type can be inserted in different ways (A TEXT can be inserted through a form or a file)     And when later, that item is edited, I need to be able to know how it was inserted to display the same UI.C - One item can be local or from a online service:      Local Video: HTML 5 VIDEO with 3 files.      Remote Video: HTML Markup for HTML Video.So I have a few types of content, different sources and different ways of being inserted (UI).The approach I am planing is the following:create table dbo.FilesPacks(  Id int identity not null    constraint FilesPacks_Id_PK primary key clustered (Id),  Created datetime not null,);create table dbo.Files(  Id int identity not null    constraint Files_Id_PK primary key clustered (Id),  PackOfFilesId int not null,  Data varbinary (max) filestream null    constraint Files_Data_DF default (0x),	  [Key] uniqueidentifier rowguidcol not null    constraint Files_Key_U unique,  	  MimeAndInfo nvarchar (200) not null) filestream_on [STORAGE];So I have:A) FilesPacks.    A file pack will allows me to create a Video with 3 Files or a PDF with one file.B) Files - Using FileStream.     This allows me to hold small files, large files, text and html (in byte form), etc.     The data does not count to the database size.     As disadvantage I see one: Poor update performance.     But in fact the files, after being inserted, will be very rarely updated.C) Files - Column MimeAndInfo     I have many types of sources and data as mentioned before.     - A VIDEO can be a file or HTML code for YouTube, Vimeo, etc.     - A Text can be a file or a text inserted from a form.     - ...     My idea is to hold that data in this column. Something like:     text/plain_f   (Text inserted by f - form)     text/plain_u  (Text inserted by u - uploading a file)     video/mp4_u   (Video inserted by u - uploading file)     video/youtube_c  (FAKE MIME: video from you tube using c - code)So basically, this column will give me the MIME type and how was inserted into the database.For a few contents which don't have a mime type I create fake mime types:"video/youtube", "map/google" ... Of course this is internal to the application.I have considered having many tables for classification but I am not sure ...I wanted something flexible ... And that could be kind of controlled by the application.NOTE: Each item also has an access level according to users ... but I left it out for sake of simplicity.Well this is just a sketch but any advice is welcome ...Thank You,Miguel | 
                                             
                                         
                                     | 
                             
       
                            
                            
                                | 
                                    
                                      
                                     
                                    
                                 | 
                             
                         
                     | 
                 
             
         |   
     
     
            
              
	     |  
		
			
     
          
		 |