说电子商务商店在关系数据库中表示嵌套子类别的最佳方法是啥[关闭]

     2023-03-29     288

关键词:

【中文标题】说电子商务商店在关系数据库中表示嵌套子类别的最佳方法是啥[关闭]【英文标题】:what is the best way to represent nested subcategories in relational database for say ecommercee store [closed]说电子商务商店在关系数据库中表示嵌套子类别的最佳方法是什么[关闭] 【发布时间】:2022-01-12 11:14:53 【问题描述】:

我有一个类别 A,它有一些子类别 a、b、c,而 a、b、c 又可以有多个子类别。

我正在考虑有一个查找表,其中包含所有类别及其 ID(ID 名称)

另一个表将使用其 ID 将类别映射到其子类别 1 > [1,2,3], 2 > [7,8,9]

把它想象成一个电子商务商店,我们在其中选择一个类别,然后它可以有多个子类别等等..

对于这个特定的用例,想确认这是否是正确的关系设计。

【问题讨论】:

***.com/questions/49433253/… 【参考方案1】:

类别和子类别是同一实体类别。您的实体与其自身存在关系,您可以将其表示为:

category [parent] (0, n) - (0, 1) category [child]

一个父类别可以有0到多个子类别子类别可以有 0 或 1父类别

当然,如果“子类别”没有父类别,那么它就不是真正的“子” 类别。

这为我们提供了左侧(父级)和右侧(子级)n(许多)和 1 的最大基数。 “一对多”(或“多对一”)关系意味着在子实体(最大基数为 1 的一侧)。由于 类别 可能没有父级,因此该列可以为空。

结论:在您的类别表中添加一个可为空的列,其自身具有外键约束。

您的表格可能如下所示:

id parent_id ...
1 NULL ...
2 NULL ...
3 1 ...
4 2 ...
5 2 ...
6 2 ...
7 3 ...
8 5 ...

它给出了以下类别树:

├──1
│  └──3
│     └──7
└──2
   ├──4
   ├──5
   │  └──8
   └──6

【讨论】:

在数据库中表示三选项的最佳方式是啥?

】在数据库中表示三选项的最佳方式是啥?【英文标题】:Whatisthebestwaytorepresentathree-choiceoptioninadatabase?在数据库中表示三选项的最佳方式是什么?【发布时间】:2012-07-0914:10:56【问题描述】:我有一个只能处于三种状态的对象... 查看详情

如何在 Primefaces 数据表中表示嵌套数据?

】如何在Primefaces数据表中表示嵌套数据?【英文标题】:HowtorepresentnesteddatainaPrimefacesdatatable?【发布时间】:2012-11-1822:20:56【问题描述】:这是我的模型:User.javapublicclassUser//...publicList<User>getFriends()//...我想建立一个这样的... 查看详情

如何在 Angular 类中表示嵌套的 JSON?

】如何在Angular类中表示嵌套的JSON?【英文标题】:HowtorepresentnestedJSONinAngularClasses?【发布时间】:2020-01-2512:48:17【问题描述】:我从服务器获取这个JSON:"Body":"ErrorsContent":"FunctionalError":["Code":"110900","Error":"xx","Position":"xx","Value":""... 查看详情

如何在我的 Graphql Schema 中表示 Neo4j 关系属性?

...发布时间】:2018-02-1915:53:27【问题描述】:我有一个Neo4j数据库,其关系具有[:FRIENDSsince:"11/2015"]等属性。我需要在GraphQlSchema中表示“since”属性。RELAY有一个叫做“e 查看详情

在固定长度向量中表示文档集合的最佳方法是啥?

】在固定长度向量中表示文档集合的最佳方法是啥?【英文标题】:Whatisthebestwaytorepresentacollectionofdocumentsinafixedlengthvector?在固定长度向量中表示文档集合的最佳方法是什么?【发布时间】:2019-10-2711:14:46【问题描述】:我正在... 查看详情

如何在 App Engine 中表示一对一的关系

】如何在AppEngine中表示一对一的关系【英文标题】:Howtorepresentone-to-onerelationshipinAppEngine【发布时间】:2011-06-0716:22:17【问题描述】:假设您有一个“用户”记录的概念,希望将其存储在数据存储中。classUser(db.Model):first_name=db.Str... 查看详情

如何在数据库中表示银行账户信息?

】如何在数据库中表示银行账户信息?【英文标题】:Howtorepresentbankingaccountinformationinadatabase?【发布时间】:2011-12-2505:32:24【问题描述】:希望这不是太离题。我想知道哪些字段是代表世界各地客户的银行账户详细信息所必需的... 查看详情

在 C++ 中表示二维数组的最佳方法,其大小在运行时确定

】在C++中表示二维数组的最佳方法,其大小在运行时确定【英文标题】:Bestwaytorepresenta2-DarrayinC++withsizedeterminedatruntime【发布时间】:2010-09-2008:32:03【问题描述】:在C++中,我想做类似的事情:intn=get_int_from_user();char*matrix=newchar[n... 查看详情

如何在 SQL 数据库中表示非 SQL 自定义模式结构

】如何在SQL数据库中表示非SQL自定义模式结构【英文标题】:HowtorepresentanonSQLcustomschemastructureinaSQLdatabase【发布时间】:2021-08-1700:37:03【问题描述】:我有一个有趣的问题。我有一个关系数据库,我可以使用自定义脚本来创建表... 查看详情

如何在 ERD 中表示多对多关系

】如何在ERD中表示多对多关系【英文标题】:Howtorepresentmany-to-manyrelastionshipinERD【发布时间】:2021-10-1115:19:54【问题描述】:我正在尝试建立餐厅系统。首先,我正在为需求构建ER图。我有两个表,客户,它只有table_number属性,... 查看详情

如果我在 ERD 中表示 JSON 模型是不是有效?

...久化特定图显示存在于中的实体(表格)(最常见)关系数据库。Q1:我很好奇,因为我很少看到JSON在ERD中表示。背后的原因是什么?Q2:由于JSON不是关系数 查看详情

在 Scheme (R6RS) 中表示代数数据类型构造函数的惯用方式是啥?

】在Scheme(R6RS)中表示代数数据类型构造函数的惯用方式是啥?【英文标题】:WhatistheidiomaticwaytorepresentalgebraicdatatypeconstructorsinScheme(R6RS)?在Scheme(R6RS)中表示代数数据类型构造函数的惯用方式是什么?【发布时间】:2021-07-0621:46:19... 查看详情

在 Django 模型中存储项目的类别和子类别的最佳方法

】在Django模型中存储项目的类别和子类别的最佳方法【英文标题】:BestwaytostorecategoryandsubcategoriesofaniteminDjangomodels【发布时间】:2015-08-0210:57:46【问题描述】:我想存储像苹果这样的东西,它将被存储为“树果-苹果-富士-有机”... 查看详情

考虑到它具有一对多的关系 [Dim 1: many Fact],如何在星型模式中表示多值维度?

】考虑到它具有一对多的关系[Dim1:manyFact],如何在星型模式中表示多值维度?【英文标题】:Howcanamulti-valueddimensionbeexpressedinastar-schemagiventhatithas1-to-manyrelationship[Dim1:manyFact]?【发布时间】:2016-11-2321:18:05【问题描述】:我是数据... 查看详情

我正在制作一个包含类别和子类别的 SQL 数据库。链接这些表的最佳方法是啥?

】我正在制作一个包含类别和子类别的SQL数据库。链接这些表的最佳方法是啥?【英文标题】:IammakingaSQLdatabaseofcategoriesandsubcategories.Whatisthebestwaytolinkthesetables?我正在制作一个包含类别和子类别的SQL数据库。链接这些表的最佳方... 查看详情

电子商店,处理信用卡和贝宝[关闭]

...道最佳实践的良好参考?我还想知道将信用卡信息存储在数据库中以供客户重用是否是个好主意。老实说,我有点害怕这个想法。有什么建议?谢谢【问题讨论】:【参考方案1】:强烈建议避免存储信用卡详 查看详情

在c#[close]中表示路由(一个地方到下一个地方等等)的最佳方式是什么?

我创建了一个解决方案,它有一个路由,提供从一个站点(地点)到另一个站点的信息等等,该解决方案还提供了各种信息,这些信息不是直接链接到站点,而是路径(彼此之间),如穿梭物流提供商的日期和运输方式。现在我... 查看详情

哪些 Swift 类型可以在 Objective-C 中表示?

】哪些Swift类型可以在Objective-C中表示?【英文标题】:WhichSwifttypescanberepresentedinObjective-C?【发布时间】:2014-06-3010:59:50【问题描述】:我正在Swift中创建一个NSManagedObject子类,当我创建一个Int、Float或Double类型的Optional属性时出... 查看详情