PHP零件管理,php-如何规范该汽车零件数据库?

博客建议将品牌表重命名为制造商表,并分为制造商和联系方式两部分。零件表应分为SKU和应用两个表,SKU包含制造商信息,应用表则记录适用的汽车品牌和型号。此外,提出创建一个连接表来处理多对多关系,以适应不同车型可能共用零件的情况。强调了规范化设计的重要性,并指出应在数据库规模扩大前考虑这些设计决策。
摘要由CSDN通过智能技术生成

不要让每个品牌都有自己的桌子.那不是规范化,而是分区.在数据库很大之前,不要这样做.

目前尚不清楚您的品牌表是什么意思.我猜你的意思是零件制造商,但我不确定.本讨论的其余部分假定您确实是零件制造商.

这是我的建议.

重命名品牌表.将其称为“制造商”,并将其分为两部分,分别用于制造商和联系方式.

制造商:

mfrid (your four letter code, primary key)

mfrname text

mrflogo varchar(20)

mfrwebsite varchar(30)

mfrphone varchar(20)

warehouse varchar(20)

联系:

mfrid (four letter code) (part of primary key)

contactid (autoincrement) (part of primary key)

contact_name text

contact_number varchar(20)

contact_email varchar(30)

bio varchar(300)

为什么“定价”是制造商的属性?您所说的“定价”是什么意思?它不是单个零件的属性吗?

将零件表一分为二.一张桌子的每个部分sku都有一行.另一个将为每个应用程序(即可以使用该零件的汽车的每个品牌和型号)都有一个表格.像这样:

SKU:

sku (your stock-keeping unit number, primary key).

mfrid (maker of the PART, not the vehicle in which it fits, foreign key to mfr table).

mfrsku (the brand's stock keeping unit, not necessarily unique in your system)

category (e.g. Brakes)

subCategory (e.g. Brake Rotors)

details (e.g. Drilled and Slotteed 'Razr')

description (Paragraph on part describing it)

saleprice (?)

cost (?)

应用:

ApplicationID (auto incrementing primary key)

make (e.g. Subaru)

model (e.g. Impreza)

subModel (e.g. WRX STi)

firstYear.

lastYear.

然后,您将需要一个联接表(因为每个应用程序可以具有零个或多个SKU,反之亦然;也就是说,您的SKU和应用程序实体可以具有多对多关系).在您的示例中,您知道Subarus的多个模型通常具有相同的部分.这种模式可以做到这一点.

应用程序SKU:

ApplicationID

SKU

规范化的技巧是了解您的应用程序域.弄清楚您拥有哪些实体:

>制造商,如Delco和Subaru

>与乔和哈利等人联系

>零件,例如左前雨刮器总成和后雨刮器总成

>应用,例如1999-2006年斯巴鲁森林人和1998-2007年斯巴鲁翼豹

创建一个与您拥有的每个实体匹配的表.弄清楚如何唯一地标识每个实体(换句话说,弄清楚将用于主键的内容).

当实体之间有多对多关系时,请创建联接表.

创建外键以将各个实体连接在一起.

我希望这有帮助.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值