C# 设计数据库模式以处理电子邮件系统中的类颜色

C# 设计数据库模式以处理电子邮件系统中的类颜色,c#,javascript,asp.net,sql,sql-server,C#,Javascript,Asp.net,Sql,Sql Server,我刚刚设计了Pm系统[简单地说],现在我想为系统设计一个颜色选择器,当查看所有Pm时,它应该以不同的颜色显示,类似于谷歌在gmail上的方法。下面是我现有的数据库模式 **Messages:** Id:int identity 1,1 Message: nvarchar(500) From:nvarchar(100) To:nvarchar(100) IsDeleted: Bit IsRead: Bit 如何以不干扰现有设置的方式添加颜色字段。例如,读取消息的颜色,删除消息的颜色[

我刚刚设计了Pm系统[简单地说],现在我想为系统设计一个颜色选择器,当查看所有Pm时,它应该以不同的颜色显示,类似于谷歌在gmail上的方法。下面是我现有的数据库模式

**Messages:**

Id:int identity 1,1

Message: nvarchar(500)

From:nvarchar(100)

To:nvarchar(100)

IsDeleted: Bit

IsRead: Bit
如何以不干扰现有设置的方式添加颜色字段。例如,读取消息的颜色,删除消息的颜色[lol],这样我就可以使用背景色显示区别了,我假设(可能是错误的)这是作为HTML输出的

数据库是数据,阅读信息的颜色是呈现。与其在数据库中为每一条消息存储一种颜色,甚至在表中只存储一次,不如使用HTML来指示其状态

在HTML中输出消息列表时,添加一个类,根据数据库值指示其状态:

<div id="message" class="read"> ... message details ... </div>
<div id="message" class="deleted"> ... message details ... </div>

这将使数据库、HTML和CSS保持分离,这是应该的方式。

如果希望每个用户都有自己的颜色模式,可以创建一个表名usercolor作为 用户ID int deleteColor varchar(6) ReadedColor varchar(6) 废话废话

您可以将dat存储在这个表中,如下所示

用户ID deleteColor ReadedColor
1 E0E0E0E1

在用户界面中,创建一个组合框,用这些颜色填充,并允许用户选择自己的颜色,然后将数据存储在数据库中


每次用户加载页面时,从usercolor表读取用户颜色数据并设置相关颜色

嘿,谢谢你的建议,现在就是这样设置的。我只是想让颜色成为用户的一种选择,并坚持下去。因此,让用户定制颜色通常是个坏主意。为这些选择最好的颜色(或者如果你不擅长颜色,请其他人帮助你),并为所有用户提供一致的体验质量。这就是说,如果您打算定制,那么DeveloperX创建一个链接到用户id的新表的解决方案可能是最好的方法。您确实有一个有效的观点,但UX不完全是关于用户交互的。当没有交互时,用户如何重新使用moreUX不仅仅是交互,而是界面的质量。举一个广泛的例子,MySpace提供了大量的定制服务。Facebook提供的信息很少。Facebook在很大程度上更受欢迎。仅仅因为用户可能希望删除的项目有一个鲜红色的背景并不意味着这是最佳选择,在这种情况下,您让用户降低UI和UX,导致他们使用应用程序的次数减少,最终结果与您想要的相反!如果你开始定制,也许精心设计的主题选择会是一个更好的选择,尽管任何高质量的东西都需要更多的时间。当然,这完全取决于你的观众,以及你想做什么。如果你有正确的理由,并且做了正确的研究,那么有时候违反规则也无妨:P
.read { 
    background: #e0e0e0;
} 

.deleted {
    background: #e0e0e0;
    color:      #ccc;
}