读书人

站内短信数据怎么设计

发布时间: 2012-01-08 22:48:50 作者: rapoo

站内短信数据如何设计?
我这个站内短信用户可以订制一些信息,站长也可以发通告给每个用户,并且需要记录那些信息已被用户读过.数据量比较.现请教一下数据库该如何设计才能即达到效果又能高效.

[解决办法]
我认为这个表的设计并不复杂。
我的思路如下:
id sendname sendmessage receivename receivemessage time sign .... .....

发送人姓名和发送人信息。
接收人姓名和接收人信息。
接收的时间
sign的标志,通过它看时候接收

等等
[解决办法]
数据量有多大,一月有千万条记录吗?如果没有的话,性能应该不是问题
[解决办法]
if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[t_message_info] ') and OBJECTPROPERTY(id, N 'IsUserTable ') = 1)
drop table [dbo].[t_message_info]
GO

CREATE TABLE [dbo].[t_message_info] (
[MessageID] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[SenderID] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[ReceiverID] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[SendTime] [datetime] NULL ,
[MessageContext] [varchar] (1000) COLLATE Chinese_PRC_CI_AS NULL ,
[MessageStatus] [int] NULL ,
[MessageTitle] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Owner] [int] NULL
) ON [PRIMARY]
GO
[解决办法]
可以三表,一是USER,二是消息,三是上表的MAPPINTG TABLE
人得它就是一MAPPING表。是用表消息表的MAPPING
M_ID,自增ID,用于方便修改是否取。
UserID,用ID
MessageID,用所的消息ID
ReadFlag,是否已取
Datetime,如果需要可以增加什么取的。
以上的字段行索引,速度是可以接收的。

读书人网 >SQL Server

热点推荐