我正在编写一个简单的用户登录Web服务,并从phpmyadmin中创建的视图中选择数据时遇到问题。
这些是我的表(不是每一列,而是重要的表)。
帐户表
CREATE TABLE generel.account (
id INT NOT NULL auto_increment ,
username VARCHAR(15) NOT NULL ,
mail VARCHAR(30) NOT NULL ,
password VARCHAR(20) NOT NULL ,
...
PRIMARY KEY (user_id),
UNIQUE username (username),
UNIQUE `mail` (mail)
);
用户状态表
CREATE TABLE game.userstatus (
user_id INT NOT NULL ,
is_logged_in BOOLEAN NOT NULL ,
...
PRIMARY KEY `ip` (`last_known_ip`)
);
带外键
ALTER TABLE userstatus
ADD CONSTRAINT fk_generel.account.id
FOREIGN key (user_id)
REFERENCES generel.account(user_id)
ON DELETE CASCADE
ON UPDATE CASCADE;
请注意,sql库(通用和游戏)不同。
这是我要使用的视图:
CREATE VIEW game.gameuser_view AS
SELECT
acc.id AS user_id ,
acc.username ,
acc.password ,
acc.mail ,
usrsts.is_logged_in
...
FROM
generel.account AS acc
INNER JOIN
game.userstatus AS usrsts
ON acc.id = usrsts.user_id
从视图中选择数据时,结果不应为空,而是取决于where子句。 插入视图时,数据应重定向到两个表,并且还可以从视图中选择。
正如我已经提到的,我正在为登录编写Web服务,并且同样的问题仍然存在。 (我没有检查插入内容,因为注册发生在其他地方。)