将主键保存在我的前端以便在发送到我的服务器以进行一些数据库操作后使用它们是个好主意吗?

时间:2018-06-13 03:35:31

标签: java web-applications web-frontend

我想把你放到上下文中。我有一个java web应用程序,我正在使用以下内容。

  • mybatis访问数据库
  • bootstrap as framework css
  • datatable js
  • jquery对我的服务器进行ajax调用

我还有两个HTML(updateDriver.html,assignCarToDriver.html)和我数据库中的三个实体。

  • 驱动器
  • driver_car

所以我有两个场景。

  • 第一个是关于在updateCar.html
  • 中对驱动程序实体进行更新
  • 第二个是在assignCarToDriver.html中为汽车或汽车分配汽车。

正如您所看到的,我的两个实体之间的数据库关系是多对多的,所以我的数据库看起来像这样。

| driver | --- | driver_car | --- |车|

在第一个场景中,在第一个html(updateDriver.html)中,此步骤将会发生。

  1. 服务器将驱动程序实体发送到我的前端,其数据库属性包括主键,名称,姓氏,年龄。
  2. 我会在我的html上显示这些属性,但不会显示主键(这个我会放入隐藏的输入文本)
  3. 因此,当用户在我的html上按“更新”按钮时,我会通过jquery获取值并将它们发送到我的服务器以在我的数据库中进行更新,我的问题来到这里,这是隐藏主要的好方法键入隐藏的输入文本?如果不是,还有其他方法来实现这个目标吗?

    在第二种情况中,在sencod html(assignCarToDriver.html)中有一个组合,显示所有启用驱动程序,一个输入文本,用户必须在其中写入汽车牌照和一个表格(数据表) js)将展示汽车。想象一下。我选择了组合中显示的第一个驱动程序,然后我将车牌放入我的输入文本中,按“搜索”按钮,这样就会发生这一步。

    1. 服务器向我发送汽车实体及其主键,型号,颜色等属性到前端
    2. 所以我会在我的桌子上显示汽车属性(datatable js),但不显示原始键(我会使列不可见)
    3. 因此,当用户按下“分配”按钮时,我会得到组合值,表记录然后我会将它们发送到我的服务器,我的问题来到这里,在这种情况下,它是获取实体的好方法,把它们放在一个表(datatable js)上并隐藏显示主键的列,将它们发送到我的服务器以进行赋值操作?如果不是,还有其他方法来实现这个目标吗?

      正如您所看到的,我认为在我的前端使用主键是不好的做法,但我可能错了。

      我希望我的解释清楚,如果我写得太多,我很抱歉,但我是新制作的java web应用程序,我真的想开发尊重好方法和最佳实践的系统,我希望你能帮助我。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

非常好。但是,不应将主键(实体的ID)隐藏在列中,而应将其作为单选按钮值。