问题本身应该非常简单和常见, 但是不知道怎么用合适的语言 /术语去描述这个问题, 所以搜索引擎里面也比较难查.
问题的场景是后台管理系统, 假设做一个商品属性的登记. 现在有一个 商品: A, 前端在登记的时候肯定是一个表单, 要求填写对应的属性, 点击“提交” 按钮🔘之后传到后端, 后端再根据预设的函数录入数据库
但是这个表单里面, 时不时就会碰到一些固定的选项做到下拉菜单里, 例如 商品类别: X, 假设目前类别有 XYZ 三种, 我的想法是后台会有一个专门的表记录这些类别, 类似这种:
商品类 id | 商品类名 |
---|---|
1 | X |
2 | Y |
3 | Z |
登记后的商品表
应该是这样吧:
商品 id | 商品名称 | 商品类 id | 商品类名(可选) |
---|---|---|---|
1 | A | 1 | X |
2 | B | 3 | Z |
先说这个 商品类名
好像商品
表里面可以不用录入吧, 这个可以理解.
但是, 我前端给用户看到的选项, 肯定是 商品类名
不是 商品类 id
, 而后面 商品
数据表里又要求插入这个 商品类 id
的话, 一般是怎么设计的呢?
通过 类名
反查 类名 id
肯定不行吧, 这个例子类名是没有重复的, 但比如 人名
这种肯定会有重复的, 这种反查就不成立了.
应该是非常简单的问题, 望大佬们不吝赐教. 或者提供一些关键词也很感谢
1
MonkeyJon 2021-09-29 13:47:04 +08:00 1
数据库:商品表里存个商品类 id
后端:查询的时候让后端带给你商品类名称不就行了 前端:展示就完事了 |
2
lishunan246 2021-09-29 13:47:22 +08:00 via Android 1
前端处理下,用户看到的是类别字符串,但实际提交的是 id
|
3
shilianmlxg 2021-09-29 13:51:52 +08:00 1
@lishunan246 我就做过,但是要定义好一张 key value 对应关系啊,也需要一个接口或者一个死的 json
|
4
actar 2021-09-29 13:57:11 +08:00 1
1. 数据库里面存商品类 id 就可以
2. 进入页面的查询的时候,把商品类 id 和名称都带回来 3. 前端选择数据的时候,展示和获取到的值可以是不一样的。将它绑定起来,你选择了 X ,但是你可以拿到 1 。就像下面那样。 <select> <option value="1">X</option> <option value="2">Y</option> <option value="3">Z</option> </select> |
5
volvo007 OP @actar 谢谢回复这么多,还有楼上的各位
这个方法我的顾虑和 3 楼一样, 当类别比较少的时候,可以维护一个写死的 json ;但如果这个表比较长比如几十个、几百个的时候要怎么处理啊 另外这种方法肯定不适用人名这种会有重复值的情况。如果录入人名(比如该商品是某某销售)的情况的话,那就不能用人名了,应该就是人名你可以选,但我旁边会加一个员工号 /身份证号 这种的提醒用户选择了对的人,这样吧 |
6
volvo007 OP @MonkeyJon 谢谢回复,可能我没描述清楚问题,我的需求和你的描述恰好相反……是前端登记,要如何设计能在后端写入 id 而不是商品类别
看了下面的回复,可能在前端通过调用这个类别表,生成一张包含 id 的 json 是比较合适的办法? |
7
volvo007 OP @actar 啊我傻了,如果这个 option 的值非常多的话,就先访问数据库把它们都拿出来,然后用框架自动生成这个 option 代码就好了吧……不用手写啊😂
|
8
limars 2021-09-29 23:47:40 +08:00 1
3 楼已经给你说了,需要一个接口(后端查询数据库后提供),返回类别名称和对应的 id 的 json 给你。或者是死 json,死 json 一般都是在万年不改的类别上。进了数据库的类别,通常都是接口提供。如果类别太多,甚至你下拉列表那边还要做成可搜索(还是调接口)的样式才行。
|