0

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

id                          
userID                                  
priority                                        
details                              
rank                                
conversation                                
order                                   
status                                  
ts

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

我的问题是这样的:

  1. 这是最好的方法吗?
  2. 我该如何识别每个对话?

我可以生成随机的 PHP 5 字符文本或其他内容,或者给出一个数字,每个用户都有对话编号 1、编号 2 等。但是如果我这样做了,我将如何找出下一个供用户使用的数字MYSQL?

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

4

3 回答 3

2

我可能会将对话存储在具有唯一 ID 的不同表中,并将该 ID 链接到票证表中。

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

我还建议您存储支持技术的用户名以及受支持者,以便清楚谁说了什么。

为了清楚起见,您也可以添加时间戳。

于 2012-07-30T11:40:13.420 回答
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)
)

时间戳可让您跟踪评论的发表时间,并且按其排序将为您提供评论的顺序。

于 2012-07-30T11:48:21.617 回答
0

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

我建议您在不久的将来对数据库及其工作方式进行一些深入的阅读。尝试为普通人设计数据库。它将为您提供一个良好的基础,了解什么是可能的,以及如何从数据库设计的角度解决问题。

于 2012-07-30T11:44:37.357 回答