SQL Table design question
Posted
by
Projapati
on Stack Overflow
See other posts from Stack Overflow
or by Projapati
Published on 2011-01-30T05:19:23Z
Indexed on
2011/01/30
7:25 UTC
Read the original article
Hit count: 115
Please ignore this question if it sounds stupid to you.
I have SQL table (SQL Server) for photo albums and it has 20+ columns & it will hold millions of albums.
I need to designate some albums as Promoted and some as Featured every week. I also need a very efficient way to get these albums (page by page) when I show it to users.
How should I design this?
option 1: I can create another table just to store the ids of the promoted and featured albums like this and then join the main albums table to get the set of columns I need.
table designated_albums:
album_id promoted_featured
1 1
5 0
7 1
15 0
The query for promoted will return 1, 7 The query for featured will return 5, 15
Option 2: I can add 1 column store 1 if promoted and 0 if featured. Otherwise it is null I can then query to check for 1 in that column for promoted albums & 0 for featured.
Option 3: I can add 2 bit columns: one for promoted (0/1) and one for featured(0/1)
Which way would perform better?
EDIT: The design should be efficient in SQL 2008 as well. Right now I have SQL 2005.
© Stack Overflow or respective owner