如果一个文章资讯网站,用户可以投稿,后台管理人员可以上传文章,那 user id 该怎么处理?

就是目前有一个文章资讯系统,用户可以投稿发文,后台管理人员可以上传文章维护资讯,那后台管理人员admin user id 和前台用户的user id 往文章表里面存的时候该怎么区分处理?光存ID肯定不行吧!

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

一个文章表,文章的发布人可能是用户,也可能是管理员。 那这个文章就是 user_id 多态的,还需要一个字段来判断 这个 user_id 属于是属于 用户 还是 管理员

这就是文档所说的多态一对一 模型关联《Laravel 8 中文文档》

2年前 评论
讨论数量: 16

可以加个字段 is_admin 区分

2年前 评论

@小李世界 那如果里面有creator_ideditor_id

2年前 评论

一个文章表,文章的发布人可能是用户,也可能是管理员。 那这个文章就是 user_id 多态的,还需要一个字段来判断 这个 user_id 属于是属于 用户 还是 管理员

这就是文档所说的多态一对一 模型关联《Laravel 8 中文文档》

2年前 评论

区分后台用户和前台用户,用了两张表。首先系统设计有问题,建议用一张表来存储用户,使用角色权限来控制前后台操作。 当然了,你已经这样设计了 。 有几种方式能实现你的需求。 1 ,增加is_admin 字段标记(1楼已说), 2,增加前台和后台用户的关系映射表, 3,给每个后台用户 创建一个前台用户, name 和 uid 都一样。

2年前 评论

@KITE 主要laravel框架自带就有一个users表,然后再用个laravel-admin或者dcat-admin框架就又有一个admin_users表了,这个要是合并是不是操作起来更麻烦:joy: ,但是我里面有不光是一个user_id,因为有创建者和编辑者,所以is_admin似乎不太好操作

2年前 评论

@MArtian 也就是一个user_id,再加上一个admin_user_id是吗?但是如果有创建者和编辑者,那就是要4个字段是吗:joy:

2年前 评论
ljheisenberg (作者) (楼主) 2年前
MArtian 2年前

morph 多态貌似适合你这个场景

2年前 评论

前台注册一个user_id 固定用这个 不建议多态关联 统一前台用户

2年前 评论

一个简单的思路, 注册一个前台用户, 后台配置一个这个管理员专用用户ID,

后台管理人员上传文章维护资讯时,user_id取这个用户ID,就行了

2年前 评论

@阿凡 前台注册一个是什么意思,管理人员不是后台添加的吗,还是后台也是用users表啊

2年前 评论

@pigzzz 那这是不是等于统一使用一张users表,只不过打上管理员标签呀

2年前 评论

从职责层面,后台管理员的职责是对文章的管理,而不是创作者,用另个字段来区分两个表的 id,颇为勉强,难以维护,我赞同@pigzzz 的方案 。

2年前 评论

@php_yt 确实维护上增加了难度,你的意思文章都是从前台用户输出?即使是管理人员,如果要输出,前台注册账号吗?因为我们目前是有十几万篇文章资讯的,但是都是给兼职人员注册的后台账号,让他们根据转载文章上传的:joy:

2年前 评论
php_yt 2年前
php_yt 2年前

典型的简单问题复杂化,先优化业务流程再做功能,你完全可以使用同一种账号发稿,而不必把自己搞痛苦。 如果非要用两种账号,那就一个发一个审。规范业务远远胜过优化多少行代码

2年前 评论

两张表省事多了。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!