代码之家  ›  专栏  ›  技术社区  ›  Gup3rSuR4c

一个内部管理聊天系统的数据库设计

  •  1
  • Gup3rSuR4c  · 技术社区  · 14 年前

    我试图实现一个内部聊天系统,以供我们的管理员使用,但我不太确定的数据库设计。到目前为止,我有这个(下面),但希望得到一个验证和/或改进建议。

    Employees {
        EmployeeId (smallint)
        // ...
    }
    
    Chat {
        ChatId (int)
        Stamp (datetime) // Obsolete, ignore...
    }
    
    ChatEmployees {
        ChatEmployeeId (int) // Or bigint?
        ChatId (int) -> Chat.ChatId
        EmployeeId (smallint) -> Employees.EmployeeId
    }
    
    Messages {
        MessageId (int) // Or bigint?
        AuthorId (smallint) -> Employees.EmployeeId
        ChatId (int) -> Chat.ChatId
        Text (varchar(512))
        Stamp (datetime)
    }
    

    提前谢谢你的建议!

    1 回复  |  直到 14 年前
        1
  •  2
  •   JohnFx    14 年前

    ChatEmployees表似乎有点多余。除非你需要录下某人在聊天但我什么都没说我就放弃。

    回复:Message.text
    我认为“text”可能是一个保留字,因为它在SQL中用作数据类型。可能想避开那个名字。

    另外,varchar 512似乎是一种允许消息使用的任意字符数,为什么是奇数?你选择它仅仅是因为它是2的一个权力,因为某种原因?