我的问题是参考this question。
假设我有三个表,user,country和user_activity,其架构/表结构如下: -
|---------------------------------------------|
| id | fname | lname | status |
|---------------------------------------------|
国家: -
|--------------------------------|
| id | name | status |
|--------------------------------|
user_activity
|-------------------------------------------------------------------------|
| id | user_id | activity_type | country_id | location | status |
|-------------------------------------------------------------------------|
说,我创建这样的用户表: -
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fname` varchar(255) NOT NULL,
`lname` varchar(255) NOT NULL,
`status` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `iduser` (`id`,`status`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
然后,我像这样创建国家/地区表: -
CREATE TABLE `country` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`status` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `idcountry` (`id`,`status`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
我想创建一个表user_activity,如果user_activity.user_id与user.id匹配,user_activity记录的状态将根据用户的状态而改变
同时,如果user_activity.country_id与country.id匹配,则user_activity记录的状态将根据国家/地区的状态而变化。
我该怎么做?如何在数据库级别实现目标,而不是通过PHP脚本设置它?