想象一下拥有各种不同产品的商店。每个产品都有category
个subcategories
。一个可以只有一个子类别,而另一个可以有3个子类别。亚马逊的例子:
Electronics, Computers & Office
Musical Instruments
Guitars
Electronic Guitar
Acoustic Guitar
Monitors
Computers & Tablets
Tablets
Laptops
Desktops
Gaming
Home
Work
所以:监视器有一个类别级别
Electronics, Computers & Office > Monitors
平板电脑两个类别
Electronics, Computers & Office > Computers & Tablets > Tablets
电子吉他三个类别
Electronics, Computers & Office > Musical Instruments > Guitars > Electronic Guitar
问题是实现这种结构的最佳方式是什么(考虑灵活性,维护,可访问性等)?在某处我看到了这个结构:
Categories table
-------------------------------------------------------
| id | title | caregoty_id |
-------------------------------------------------------
| 1 | Electronics, Computers & Office | null |
| 2 | Musical Instruments | 1 |
| 3 | Guitars | 2 |
| 4 | Electronic Guitar | 3 |
| 5 | Acoustic Guitar | 3 |
| 6 | Monitors | 1 |
| 7 | Computers & Tablets | 1 |
| 8 | Tablets | 7 |
| 9 | Laptops | 7 |
-------------------------------------------------------
正如您所看到的,只有一个表与自身有关系。我不知道这是否是正确的做法。我是否应该采用这种想法,或者我应该采用更加先发制人的方式,通过Categories
表格来表达:categores1, categories2, categories3 ...
他们有One To Many
关系。更多子类我会有更多的表。但我认为SELECT
来自他们的数据会很困难,因为我们不知道一个项目有多少个子类别。
这些方法是否正确?我应该使用哪一个或者有更好的方法吗?对不起,如果这是无关紧要的问题。谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
在我看来,如果我们谈论SQL它应该看起来像......
Table(object): Electronics&Computers & Office
Table(object):Musical Instruments
Guitars
Table(object):Monitors
Table(object):Computers & Tablets
Tablets
Laptops
Desktops
Table(object):Desktops
Gaming
Home
Work
共5个表格(对象)。再说一遍,我只是我的观点。 谢尔盖