IT支持mySQL数据库结构

时间:2012-07-30 11:36:52

标签: php mysql

我正在为有关IT的问题创建一个票务系统。我有下表:

id                          
userID                                  
priority                                        
details                              
rank                                
conversation                                
order                                   
status                                  
ts

我需要的是能够在IT部门和用户之间来回显示对话。所以我想我有两列conversationorder。列conversation将是唯一标识符(数字或文本),顺序将显示行在对话中播放的顺序(1,2,3等)。

我的问题是:

  1. 这是最好的方式吗?
  2. 我该如何识别每次对话?
  3. 我可以生成随机的PHP 5字符或其他内容,或者给出一个数字,每个用户都有对话号1,数字2等。但是如果我这样做了,我怎么能找到下一个用于用户使用mySQL?

    任何想法和建议都会有所帮助,谢谢。

3 个答案:

答案 0 :(得分:2)

我可能会将对话存储在另一个表中,该表具有唯一的ID和在票证表中id的链接。

这个其他表可能包含“来回”序列的自动增量ID,全局会话密钥(存储在票证表中)和会话(行)本身。

我还建议您存储支持技术人员和支持人员的用户名,以便明确谁说出了什么。

您也可以添加时间戳以便清晰。

答案 1 :(得分:1)

我会选择像@Debock这样的单独表格。我的结构有点不同但是:

create table ticket_conversation (
    id                     int not null auto_increment primary key
,   ticket_id              int not null
,   user_id                int not null
,   conversation_text      text
,   conversation_timestamp timestamp default current_timestamp
,   foreign key ticket_id references ticket(id) 
,   foreign key user_id references user(id)
,   key(ticked_id, conversation_timestamp)
)

时间戳允许您跟踪评论的发布时间,并通过它进行排序将为您提供评论序列。

答案 2 :(得分:0)

SQL表通常有一个列,用于存储称为主键的唯一标识符。主键可以是自动生成的整数。因此,您无需为尝试在PHP中创建唯一标识符而烦恼。

我建议在不久的将来,对数据库及其工作原理进行一些深入阅读。试试Database Design for Mere Mortals。从数据库设计的角度来看,它将为您提供有关可能性和如何处理问题的良好基础。