データベースに管理者用とユーザー用に 2 つの個別のテーブルを作成しました。ユーザーと管理者のログイン詳細 (IP アドレス、user_agent、接続時間など) を 1 つのテーブルに保存したいと考えています。このテーブルに管理者 ID 用とユーザー ID 用の 2 つのフィールドを作成する唯一の解決策は (以下のように) ですか?
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
空になります。(一般的に)何を提案しますか?