无限级分类 的 模型关系如何定义

Goods 模型 对应的 商品表

CREATE TABLE `g_goods` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'desc',
  `cat_id` int(10) unsigned NOT NULL,
  `base_price` int(10) unsigned NOT NULL DEFAULT '0',
  `state` int(10) unsigned NOT NULL DEFAULT '1',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

一些数据

id name
1 小米8
2 小米7
3 小米6
4 MI8

模型 GoodsAttrbute 对应 的 商品规格/属性表

无限级分类思想设计的

  1. 商品ID
    1. 颜色

parent_id 为 0 的 是

CREATE TABLE `g_goods_attrbutes` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `value` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `parent_id` int(10) unsigned NOT NULL,
  `level` tinyint(4) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

一些数据

id value parent_id
1 4 0
2 2 0
3 3 0
4 颜色 1
5 版本 1
6 内存 2
7 红色 4
8 白色 4
9 4G+64G 5
10 8G+128G 5
12 尺寸 1
14 4.0寸 12
15 4.5寸 12

问题

我现在想 的 goods 模型里 定义 一个关系 查出 这件 商品 的属性

所以这里 好像 产生了 一个 ( 两张表间 ) 的 远程 一对一对多 的关系

嗯,这个表 有点奇怪。别介意 啊 。

新手 突发 奇想 就设计了个 神奇 的表

来个大佬 瞧瞧 我这个问题 有解吗。 什么解决办法

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!