我正在爲Facebook這樣的牆結構製作db架構。我需要保存牆貼,分享鏈接,將視頻內容分享到我的數據庫中。直到現在我能夠使這個架構:針對Facebook的DB架構,比如Wall +「共享鏈接」
GO
CREATE TABLE [Wall]
(
[ID] [int] NOT NULL IDENTITY(1, 1) ,
[PostText] [nvarchar](MAX)
[PostedByUserID] [int] NULL ,
[PostedOnUserID] [int] NULL ,
[DateCreated] [datetime] NULL
)
GO
接下來我要補充的模式添加了「分享鏈接」和「共享視頻」功能。
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
與此架構
目前:
第一情況下:當壁柱插入[SharedLink],[SharedLinkTitle],[SharedLinkDesc],[SharedLinkImageSrc]列將被插入作爲無效和其餘的列將具有值。
第二種情況:當插入「鏈接共享」時,「[WallText]」列將插入爲空,其餘列將具有值。
對於我的情況,70%的時間將發佈牆貼和30%的「鏈接」,這意味着70%的案例[SharedLink],[SharedLinkTitle],[SharedLinkDesc],[SharedLinkImageSrc]將插入爲空。現在我擔心的是,它是好保持空列插入或我應該去爲一個單獨的表「共享鏈接」的宗旨,並有分隔的表是這樣的:
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
我有類似去進一步添加用於共享視頻的模式的方式。請指導我向哪個方向移動?
沒有這張貼在lessthandot上嗎? – DForck42 2010-09-17 16:07:27