下面是一个简单的例子,有三个表:设备类型、设备组件、设备,由前两表数据组成。
那么,如果设备类型3(紧急对讲)是由设备组件表的两个元素组成的,如何在设备表的组件列中指定?我的意思是,我知道我需要来自设备组件表的ID 1、3和4,但是。..如何在另一个表的列中引用这两个值?我需要做一些类似this的事情,或者可以在表中定义一个json列?
xkftehaa1#
您需要多行。如果紧急对讲机由按钮和扬声器组成,则如下所示:| ID|设备_类型|组件|| --------------|--------------|--------------|| 1|三|四|| 二|三|五|
在任何情况下,都不要给予于将数据存储为分隔或打包(json等)列的诱惑。
kqhtkvqz2#
考虑一个表:
CREATE TABLE devices ( id ... name ... device_type VARCHAR(...) -- such as "mobile intercom" components SET('led','handset','speaker',...) );
dphi5xsq3#
表“器械”,列:ID,名称,设备类型,组件,这不是一个好主意。有时,设备可以属于几种类型的设备,例如。例如,笔记本电脑可以同时作为笔记本和超极本工作(如果您正在使用PC创建在线商店)。因此,更好的解决方案是创建像“设备类型”和“组件”这样的子表。每一个都应该有指向设备ID的PK ID(id)和device_id(did)。下面是这种解决方案的示意图:
3条答案
按热度按时间xkftehaa1#
您需要多行。如果紧急对讲机由按钮和扬声器组成,则如下所示:
| ID|设备_类型|组件|
| --------------|--------------|--------------|
| 1|三|四|
| 二|三|五|
在任何情况下,都不要给予于将数据存储为分隔或打包(json等)列的诱惑。
kqhtkvqz2#
考虑一个表:
dphi5xsq3#
表“器械”,列:ID,名称,设备类型,组件,这不是一个好主意。
有时,设备可以属于几种类型的设备,例如。例如,笔记本电脑可以同时作为笔记本和超极本工作(如果您正在使用PC创建在线商店)。因此,更好的解决方案是创建像“设备类型”和“组件”这样的子表。每一个都应该有指向设备ID的PK ID(id)和device_id(did)。
下面是这种解决方案的示意图: