我有两张桌子。表A和B。表A有一列,以自动递增作为主键。

id    name       date_created
1     Kletian    12-12-12 12:12:12
2     Vormav     12-12-12 12:12:13
3     Agrias     12-12-12 12:12:14
4     Ramza      12-12-12 12:12:15


表B应该有一个引用表A中ID的外键。但是,由于ID是自动递增的(由mysql生成),因此我无法使用服务器端编程来分配它(我使用PHP进行插入)。但是,在表A中,有一列date_created和datetime属性。

通常,这是表B应该看起来像:

id     images
1      abc.jpg
1      def.png
1      ghi.jpg
2      jkl.png
3      mno.jpeg
3      pqr.png


这是我对表B的计划:

date_created           images
12-12-12 12:12:12      abc.jpg
12-12-12 12:12:12      def.png
12-12-12 12:12:12
12-12-12 12:12:13
12-12-12 12:12:14
12-12-12 12:12:14      pqr.png


注意:


通过服务器端编程(PHP)获取自动增量值不可靠。由于用户可以删除记录并弄乱订单。
我具有更改表结构的特权。可以进行较小的更改,但是禁止进行较大的更改。
我的计划安全吗,或者还有其他选择?

最佳答案

序列号:占据表A中的一列,当您插入新条目时该列会递增(不是自动递增),例如:

seq_no | name
  1    |  Kletian
  3    |  Agrias


因此,当您要在表A中进行新输入时,只需获取MAX()seq_no并将其递增1。

同样在表B中,使seq_no像外键一样,如下所示:

seq_no | images
  1    |  abc.jpg
  3    |  efg.jpg

关于php - 在表中使用datetime列作为外键是否安全?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42336005/

10-12 03:00