自动生成主键时,如何设置restaurants表owner外键关联users表?
解决餐厅表owner字段赋值问题
根据你的表结构和需求,不同场景下有几种直接可行的处理方式:
- 登录用户自主添加餐厅(最常用)
如果是当前登录的用户自己创建餐厅,后端直接从用户的登录会话中提取user_id,插入restaurants数据时自动把这个ID赋值给owner字段,完全不需要用户手动输入。比如MySQL的插入SQL示例:
INSERT INTO restaurants (r_name, address, owner) VALUES ('港式茶餐厅', '上海', 3); -- 这里的3是当前登录用户的user_id
这种方式既能保证归属准确,还能避免用户输入错误。
管理员后台分配餐厅
如果是管理员为用户创建餐厅,在餐厅录入表单里加一个用户选择下拉框,选项显示用户的姓名(背后关联对应的user_id)。提交表单时,后端拿到选中的user_id,直接赋值给owner字段就行。用户注册后立即创建餐厅
要是用户刚注册完就创建餐厅,在用户注册成功后,直接获取数据库返回的自动生成user_id,紧接着用这个ID插入餐厅数据。比如MySQL和PostgreSQL的实现示例:
-- MySQL示例 INSERT INTO users (email, u_name) VALUES ('lisa@test.com', 'Lisa'); SET @new_user_id = 376480; -- 获取刚生成的user_id INSERT INTO restaurants (r_name, address, owner) VALUES ('咖啡店', '杭州', @new_user_id);
-- PostgreSQL示例 INSERT INTO users (email, u_name) VALUES ('lisa@test.com', 'Lisa') RETURNING user_id INTO @new_user_id; INSERT INTO restaurants (r_name, address, owner) VALUES ('咖啡店', '杭州', @new_user_id);
内容的提问来源于stack exchange,提问作者johnieboy000
相关产品推荐
相关产品推荐

