我在我的数据库中为管理员和用户创建了 2 个单独的表。我想将用户和管理员登录详细信息(IP 地址、用户代理、连接时间等)保存到一张表中。唯一的解决方案是在此表中创建两个字段,一个用于管理员 ID,另一个用于用户 ID(如下所示)?
CREATE TABLE login_detail (
id int NOT NULL AUTO_INCREMENT,
admin_id int,
user_id int,
ip_address ...
...
PRIMARY KEY (id),
FOREIGN KEY (admin_id) REFERENCES admin(id) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE RESTRICT ON UPDATE RESTRICT
)
如果管理员登录,他的 id 将被存储admin_id
并user_id
为空。如果用户登录,他的 id 将被存储user_id
并admin_id
为空。你有什么建议(一般)?