设计反馈数据库表

时间:2016-08-31 14:13:49

标签: sql database-design

反馈表中应包含哪些属性?

首先,我不需要任何登录反馈。所以我将以下列放在我的表中:

例如

  1. 主题=关于反馈的目的是什么。
  2. message =主题描述。
  3. 联系电话
  4. 电子邮件=联系用户或重播主题的答案
  5. 名称=用于呼叫用户目的
  6. FeedBack_Date = TIMESTAMP ON UPDATE

    我的桌子上是否需要任何主键?如果是这样,为什么我需要主键?有什么建议吗?

3 个答案:

答案 0 :(得分:1)

反馈表中应包含哪些属性?

这取决于您的业务逻辑。在极端情况下,您可以将所有内容存储在一个字段中,您仍然可以阅读它。但我希望它不是你想要的。

在您建议的列列表中,我缺少一些时间戳(用于存储消息发送的时间)以及任何系统信息(IP,浏览器信息等)

我应该在其中需要任何主键,如果这样做,为什么我需要主键

主键唯一标识单个行,因此数据操作和排序变得更容易。

答案 1 :(得分:0)

Primary用于标识表格中的特定行。

假设您是从同一客户获得多个反馈,则无法从您提到的字段中识别它们。您可以根据客户的姓名或电子邮件列出它。如果有ID(主键),您可以告诉我这是我们从特定客户或类似客户那里收到的第一个反馈。同样,最好在表格中添加“反馈日期”作为字段,以便您可以跟踪反馈。

以下是示例模式。

CREATE TABLE dbo.Feedback
  ([ID] INT IDENTITY(1,1) PRIMARY KEY, --Primary key of your table
   [Subject] VARCHAR(500),
   [Message] VARCHAR(MAX),-- limit the datatype as per your allowed characters
   [Name]  VARCHAR(150),
   [Contactnumber] VARCHAR(20),
   [Email] VARCHAR(150),
   [ReceivedDate] DATETIME Default(GETDATE()) --the date you received the feedback 
   )

答案 2 :(得分:0)

是的!我强烈推荐一把主键。执行简单键的最简单方法是以这种方式创建列

feedbackID int IDENTITY(1,1) NOT NULL

在上面的例子中,第一个1是起始种子,第二个1是增量。您可能希望为用户提供一个案例#(他的feedbackID),在这种情况下,您可能希望以随机数或10,000开头。而不是说你的情况#是1你可以分配它10001或我通常开始10123所以它不会出现它是一个新的网站,新的应用程序等。这是个人喜好,并没有功能上的要求。

注意:重要的是,您需要添加日期字段,以便了解反馈何时进入。