首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为多个选项的多个下拉列表创建数据库架构

如何为多个选项的多个下拉列表创建数据库架构
EN

Stack Overflow用户
提问于 2018-11-28 08:14:57
回答 1查看 259关注 0票数 0

假设你有一个计算机型号的表,这些计算机型号可以升级不同的部件,例如ram、cpu和存储器,并且可用的不同选项存储在下拉列表中。

您将如何在数据库中表示它?

我在考虑为每种类型单独使用一个表,例如:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS ram(
    primary_key INTEGER PRIMARY KEY,
    size TEXT NOT NULL,
    price REAL NOT NULL
);

CREATE TABLE IF NOT EXISTS cpu(
    primary_key INTEGER PRIMARY KEY,
    cpu_type TEXT NOT NULL,
    price REAL NOT NULL
);

但是,如何将这些记录的多个记录组合在一起以创建下拉分组呢?我是否需要为存储一个下拉列表组的所有主键的每个选项提供单独的表?或者我可以将它们分组到一个选项表中?还是有更好的方法?

EN

回答 1

Stack Overflow用户

发布于 2018-11-28 08:24:31

作为指导原则,优先选择更多的列而不是更多的表,更喜欢更多的行而不是更多的列。这是因为每个首选项都比其他选项更容易实现和管理。

你的方法的问题是,每次你有一个新类型的东西,你都需要一个新的表。这将需要模式更改和新的代码来处理它。重要的是,这些新东西不会被你的应用程序发现。

相反,创建一个包含所有内容的表:

代码语言:javascript
复制
create table part (
    id int,
    name varchar(99),
    price real
    -- more columns for attributes that ALL parts have (if any)
)

由于不同的部分具有不同的属性,因此在此表中有许多列是不明智的,其中大多数列都没有使用。为特殊属性创建表:

代码语言:javascript
复制
create table part_attr (
    part_id int references part(id),
    name varchar(99),
    value varchar(99)
    -- possibly other columns
)

然后使用代码将其编织成dropdown等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53510210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档