mysql 如何在SQL数据库的单个字段中存储多个键值?

ffscu2ro  于 2023-04-28  发布在  Mysql
关注(0)|答案(3)|浏览(159)

下面是一个简单的例子,有三个表:设备类型设备组件设备,由前两表数据组成。

那么,如果设备类型3(紧急对讲)是由设备组件表的两个元素组成的,如何在设备表的组件列中指定?
我的意思是,我知道我需要来自设备组件表的ID 1、3和4,但是。..如何在另一个表的列中引用这两个值?
我需要做一些类似this的事情,或者可以在表中定义一个json列?

xkftehaa

xkftehaa1#

您需要多行。如果紧急对讲机由按钮和扬声器组成,则如下所示:
| ID|设备_类型|组件|
| --------------|--------------|--------------|
| 1|三|四|
| 二|三|五|

在任何情况下,都不要给予于将数据存储为分隔或打包(json等)列的诱惑。

kqhtkvqz

kqhtkvqz2#

考虑一个表:

CREATE TABLE devices (
    id ...
    name ...
    device_type  VARCHAR(...)  -- such as "mobile intercom"
    components SET('led','handset','speaker',...)
);
dphi5xsq

dphi5xsq3#

表“器械”,列:ID,名称,设备类型,组件,这不是一个好主意。
有时,设备可以属于几种类型的设备,例如。例如,笔记本电脑可以同时作为笔记本和超极本工作(如果您正在使用PC创建在线商店)。因此,更好的解决方案是创建像“设备类型”和“组件”这样的子表。每一个都应该有指向设备ID的PK ID(id)和device_id(did)。
下面是这种解决方案的示意图:

相关问题