-1

首先很抱歉我的英语不好呵呵我需要一些帮助,我想为一个网站设计一个数据库,比如一个迷你亚马逊。该数据库将管理各种产品(电视、汽车、电脑、书籍、电子游戏、铅笔、桌子、裤子......),而且,每个产品都必须有一些属性(将被索引),例如,如果产品是一本书,属性将类似于流派、年份、作者。如果产品是电视,属性将是尺寸、颜色和年份。如果产品是汽车,属性将是年份、颜色、型号等。所以,这是我的想法:

  1. 一张桌子来管理部门(如电子、书籍……)
  2. 一个表来管理部门的类别,这个表将是前一个表的子表。如果部门是电子,这里是音频、电视和视频、游戏……(每个类别属于一个部门,关系是一个部门对多个类别)
  3. 一表管理产品(每个产品属于一个类别,关系是一个类别对多个产品)
  4. 一张表来管理属性(如年份、颜色、流派、型号......)
  5. 一张表,用于与属性关联的产品,此表将称为 ProductProperties

我不确定这是否是最好的方法,数据库会很大,我将在 MySQL 上开发数据库。但是,我认为这不是最好的方法,这篇文章讲的是“数据库抽象:聚合和泛化” http://cs-exhibitions.uni-klu.ac.at/index.php?id=433,换句话说通用对象(我认为),但这种方式很旧(70 年代)。在这篇文章http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/在“一个表保存所有域值”部分中说这是一种错误的方式...我说这一切都是因为表格 ProductProperties,我不知道我是否制作了这张表格,或者我是否为每种产品制作了特定的表格。

你有什么建议吗?还是你有更好的主意?

先谢谢了,保重!!!

4

3 回答 3

2

1.管理部门的表(如电子,书籍......) 2.管理部门类别的表,此表将是前一个表的子表。如果部门是电子,这里是音频、电视和视频、游戏……(每个类别属于一个部门,关系是一个部门对多个类别)

为什么?一张表,分类,形成层次。更灵活。

3.一表管理产品(每个产品属于一个类别,关系是一个类别对多个产品)

为什么?在此处允许 m:n。多品类的产品。

我不确定这是否是最好的方法,数据库会很大

啊——不。对不起。不平凡,是的。休? 不,只是为了让您了解休-我有一个数据库,我每天将 12 亿行添加到特定表中。一般。这很大。你最终得到什么 - 100.000 件?甚至不值一提。

于 2010-11-27T23:01:08.713 回答
1

Pablo89,你想要什么的描述与 AdventureWorks database for SQL Server 所做的非常接近。从 Web 应用程序到向 BI 报告,有许多在 Web 上使用 AdventureWorks 的示例。

下载并安装 SQL Server Express 2008 R2。下载并安装上述产品的示例数据库。检查 AdventureWorks 的数据库设计。

在您可能发布的问题中使用 AdventureWorks 作为示例。

我使用 AdventureWorks,因为我使用 SQL Server。我并不是说它比其他数据库产品更好我这样说是因为我知道 AdventureWorks。

于 2010-11-28T14:05:51.400 回答
0

我不认为某些数据库可以快速处理 500,000,000 个项目。amazon.com 的完整产品类别树包含 51,000 个节点 ( amazoncategories.info )。此外,数据每小时更新一次,因此保存的产品信息可能不正确。我认为最佳方式是存储类别树,仅在运行时使用亚马逊的 API 获取产品数据。

于 2017-03-31T18:15:03.630 回答