Hi,
I am making a db schema for facebook like wall structure. I need to save wall posts, share a link, share a video stuff into my database. Till now I am able to make this schema :
GO
CREATE TABLE [Wall]
(
[ID] [int] NOT NULL IDENTITY(1, 1) ,
[PostText] [nvarchar](MAX)
[PostedByUserID] [int] NULL ,
[PostedOnUserID] [int] NULL ,
[DateCreated] [datetime] NULL
)
GO
Next I have to add the schema for adding the "share a link" and "share a video" feature.
GO
CREATE TABLE [Wall]
(
[ID] [int] NOT NULL IDENTITY(1, 1) ,
[WallText] [nvarchar](MAX)
[PostedByUserID] [int] NULL ,
[PostedOnUserID] [int] NULL ,
[DateCreated] [datetime] NULL,
[SharedLink] [nvarchar](1024) NULL ,
[SharedLinkTitle] [nvarchar](512) NULL ,
[SharedLinkDesc] [nvarchar](512) NULL ,
[SharedLinkImageSrc] [nvarchar](512) NULL
)
GO
Now with this schema:
1st case: When the wall post is inserted the [SharedLink], [SharedLinkTitle],[SharedLinkDesc], [SharedLinkImageSrc] columns will be inserted as null and rest of the columns will have the values.
2nd case: When the "link shared" is inserted the "[WallText]" column will be inserted as null and rest of the columns will have the values.
For my case 70% of the time the wall post will be made and 30 % "links" will be shared which means 70 % of the cases [SharedLink], [SharedLinkTitle],[SharedLinkDesc], [SharedLinkImageSrc] will be inserted as null. Now my concern is that is it okay to keep the null columns inserted or I should go for a separate table for "shared a link" purpose and have the separated table like this:
GO
CREATE TABLE [LinkShared]
(
[ID] [int] NOT NULL IDENTITY(1, 1) ,
[PostedByUserID] [int] NULL ,
[PostedOnUserID] [int] NULL ,
[SharedLink] [nvarchar](1024) NULL ,
[SharedLinkTitle] [nvarchar](512) NULL ,
[SharedLinkDesc] [nvarchar](512) NULL ,
[SharedLinkImageSrc] [nvarchar](512) NULL
)
GO
I have to go in similar manner to add the schema for sharing the videos further. Please guide me in which direction should I move ?