Activerecord链接2个表
我已经能够制作两个ActiveRecord表,Profile和Bot。我一直不知道如何正确地将它们连接起来 有数千个档案,其中列为用户名、性别。少数机器人具有列botname,level 当机器人访问配置文件时,需要记录两条信息已访问和响应应针对该特定机器人进行更新VISISTED是一个布尔值,表示一个特定的机器人访问了该特定的配置文件。响应是一个字符串,与访问的类似这是一个特定配置文件发送的特定机器人的响应。我想我需要一个连接这两个表的第三个表 我需要记录每个机器人访问的每个配置文件以及访问时发生的响应 如何创建此关系以及如何设置/更新列Activerecord链接2个表,activerecord,Activerecord,我已经能够制作两个ActiveRecord表,Profile和Bot。我一直不知道如何正确地将它们连接起来 有数千个档案,其中列为用户名、性别。少数机器人具有列botname,level 当机器人访问配置文件时,需要记录两条信息已访问和响应应针对该特定机器人进行更新VISISTED是一个布尔值,表示一个特定的机器人访问了该特定的配置文件。响应是一个字符串,与访问的类似这是一个特定配置文件发送的特定机器人的响应。我想我需要一个连接这两个表的第三个表 我需要记录每个机器人访问的每个配置文件以及访问时
谢谢我不能完全确定您的要求,因此我将重申:
profile
---------
profile_id integer autoincrement
username varchar(255)
gender ...
bot
---------
bot_id integer autoincrement
name varchar(255)
level ...
visit
---------
visit_id integer autoincrement
bot_id integer
profile_id integer
visit_time datetime
response varchar(255)
为了保持数据的完整性,您需要在此访问表与配置文件表和bot表之间设置外键约束
alter table visit
add constraint visit_profile_profile_id_fk
foreign key (profile_id)
references profile (profile_id);
alter table visit
add constraint visit_bot_bot_id_fk
foreign key (bot_id)
references profile (bot_id);
您需要决定给定的机器人多次访问特定配置文件是否“合法”。如果不是,您应该在visit表中对profile_id和bot_id的组合设置一个唯一的约束,并在DBMS向您抛出重复的键错误时捕获它们(或者处理重复)
我希望这会有所帮助。值“已访问”和“响应”中存储了哪些数据?您是否需要跟踪机器人访问的每个配置文件?或者只是机器人访问的最后一个配置文件?问题更新以回答您的问题。回答得好。非常感谢你。