【问题标题】:Designing Database Schema for handling color like in email systems设计数据库模式以处理电子邮件系统中的颜色
【发布时间】:2011-06-22 03:28:23
【问题描述】:

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

**Messages:**

Id:int identity 1,1

Message: nvarchar(500)

From:nvarchar(100)

To:nvarchar(100)

IsDeleted: Bit

IsRead: Bit

如何以不干扰现有设置的方式添加颜色字段。例如,已读邮件的颜色,已删除邮件的颜色[lol] 这样我就可以使用背景颜色来区分

【问题讨论】:

    标签: c# javascript asp.net sql sql-server


    【解决方案1】:

    我假设(可能是错误的)这是作为 HTML 输出的。

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

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

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

    在你的 CSS 中定义你想要的读取、删除等样式:

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

    这使您的数据库、HTML 和 CSS 保持独立,这是应有的方式。

    【讨论】:

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

    如果您希望每个用户都有自己的颜色模式,您可以创建一个表名 usercolor 为 用户名 int 删除颜色 varchar(6) ReadedColor varchar(6) 哈哈哈哈哈哈

    你可以将数据存储在这个表中

    userid deleteColor ReadedColor
    1 e0e0e0 e0e0e1

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 2019-05-10
      相关资源
      最近更新 更多