2014-07-11 116 views
1

我正在构建一个支持票据系统以与我当前的项目集成。我想知道它应该是什么数据库表。这就像联系我们的查询,我们通常在网站上。制作用户支持票据系统的数据库模型

我希望如果用户在联系我们时发送查询,那么应该为它创建一个票据,并且对该查询的所有答复都应该互相链接,以便客户服务代表可以一次查看所有答复。没有什么更花哨的是必需的。

对于初始查询,四场是必需的 - 名称电子邮件电话号码查询消息

我在想创建两个表:

第一个表包含用于ID,姓名,电子邮件,消息和电话号码的列,第二个表以ID为FK的第一个表格的形式存储带有日期时间的所有消息。

这是正确的做法吗?

回答

3

这是一个好的开始。

如果我可以总结一下你想要的表格。你可能想:

Table: Query 
Fields: ID, Name, Email, Phone, Message 

Table: Reply 
ReplyID, QueryID, ReplyMessage, DateTimeReply 

ReplyQueryIDFKQuery表的ID领域的未来。

但是,您可能会添加回答查询的人员,这意味着您可能会为客户服务人员提供一张表格。所以,你可能有下表。

Table: CustomerCareUser 
Fields : CustomerCareID, Lastname, Firstname, LastLogInDate 

因此,这意味着你的表Reply表将略有改变。

Table: Reply 
Fields: ReplyID, QueryID, ReplyMessage, DateTimeReply, RepliedByID 

其中RepliedByID是从CustomerCareUserCustomerCareID,因此一个FK

而且您还可以在查询中进行分类,即客户查询属于哪个Category。所以,在未来,您可以轻松理清并报告客户在您的网站(或产品)中具有哪些类型的查询。所以,你将有可能是一个分类表像一个如下:

Table: Category 
Fields: CategoryID, CategoryName 

因此,这意味着你需要在你的Query表中添加CategoryID,如:

Table: Query 
Fields: ID, Name, Email, Phone, Message, CategoryID 

现在,最后怎么样的标志如果查询已解决或没有?所以,你可能会添加另一个字段(布尔型),如Resolved。所以,这意味着你可能在下面的表格中有Query

Table: Query 
Fields: ID, Name, Email, Phone, Message, CategoryID, Resolved 
+0

查询表应该有'user_id'列,否则无法区分查询所有者 – alex