【问题标题】:Database design based on a list基于列表的数据库设计
【发布时间】:2011-07-13 11:03:55
【问题描述】:

谁能帮我根据以下标准设计数据库/表?

需要一个允许访问者浏览、搜索和购买电影的电子商务网站。以下业务逻辑适用:

  1. 每部电影都可以以不同的股票代码和价格提供 DVD 或蓝光格式。网站管理员将来可能会添加其他格式。
  2. 电影应具有标题、说明、发行年份以及针对电影存储的十个“星级”。
  3. 电影与一个或多个演员相关联,演员可以与一个或多个电影相关联,因为有些电影可能是纪录片(没有演员)。
  4. 电影可以与一种或多种类型(例如动作、冒险、科幻等)相关联。
  5. 类型和演员的数量可能会发生变化,因此网站管理员需要能够随着时间的推移添加/编辑尽可能多的类型和演员。
  6. 网站的访问者应该能够通过按演员或类型浏览来找到电影。当他们这样做时,他们应该能够看到与他们选择的演员/类型相关的所有电影的列表。
  7. 要从网站购买,访问者必须注册他们的详细信息才能成为用户。
  8. 用户将拥有一个或多个与其帐户相关联的地址。当他们将来登录系统时,他们之前输入的所有地址都应该可供他们选择以获取最新订单。他们还应该能够随时向自己的帐户添加新地址。
  9. 订购时,用户将从可用电影中选择一个或多个项目(以特定格式)。他们需要从之前输入的地址中选择一个账单和送货地址,然后用信用卡支付订单。
  10. 由于产品的价格会随着时间而变化,系统应记录其订单中每件商品在购买时的价格以及整个订单的总价。
  11. 不需要跟踪库存水平 - 可以假设所有产品一直都有库存。

【问题讨论】:

  • 这是作业吗?在任何情况下,您都不太可能在这里找到为您设计数据库的人。自己做一些工作,看看你想出了什么 - 然后在这里问你有什么具体问题。
  • 我想要一些基本的想法......设计这个......就是这样。
  • 那么您认为哪些表是必要的?这是一个起点。通读列表并决定引用哪些可能需要表格的项目。一对开始:电影,流派,演员
  • 好的,但我很困惑,我需要在单独的表中还是在单个表中制作 FILM、GENRE ACTOR?以及我需要分配哪个唯一键/索引??

标签: mysql database database-design


【解决方案1】:

如果这是家庭作业或课堂项目,那么您真的需要开始学习规范化。在 MySQL 网站上查看 wikipediaintroduction 上的文章

如果这是一个专业项目,那么您需要专业的帮助来设计/开发您的电子商务网站。

【讨论】:

    【解决方案2】:

    这是我能想到的,希望它能够满足您的要求中提到的所有标准。我是在 SQL Server 中设计的,因为这台机器上没有 MySQL。

    设计数据库的步骤(实体关系建模)

    1. 从需求中识别实体。实体是保存信息的对象(通常表示现实世界的实体,如人、汽车、银行、员工等)。在您的情况下,可识别的实体是:电影、演员、用户、订单
    2. 确定需求中的实体后,开始确定实体的属性(或属性)。属性是与实体相关联的东西。例如,可以通过制造商、型号、颜色、发动机容量等来识别汽车。在您的情况下,电影实体的属性将是名称、类型、ActorInFilm(s)、格式、价格李>
    3. 确定实体之间的关系。就您而言,电影与演员有关系。关系是:一部电影可以有零个或多个演员。而且,一名演员可以出演一部或多部电影。因此,电影和演员是相关的。
    4. 确定关系的基数。基数可以用简单的术语解释为有多少个实体实例参与了关系。 例如,雇主可以有 1 名或多名雇员。一名雇员只能受雇于一个雇主。在这种情况下,有 2 个实体:Employer 和 Employee。他们共享关系雇佣。在您的要求中,Film 和 Actor 是共享关系 Acts in(Actor(s) acts in Film)的实体。因此,这种情况下的基数将是一对多(电影对演员)(一个演员可以在许多电影中表演)和零对多(演员对电影)。
    5. 完成此部分后,您就拥有了零正态实体关系图。然后是标准化。您可以在另一篇帖子 here 上了解它。
    6. 将实体关系规范化后(通常到第 3 范式就足够了),您可以在 SQL 设计软件(MySQL 等)中实现数据库设计

    完成上述步骤的最佳方法是拿一张纸,以表格格式写下实体和属性,然后将它们链接到其他实体(以表示关系)。

    您可以参考任何关于数据库概念(包括规范化)的好的 book,或者只是在 google 上搜索(关键字:数据库规范化数据库设计、实体关系建模等)。我上面的解释非常简要,您需要自己发现其余的数据库概念。

    实体关系图通常缩写为ER图。

    【讨论】:

    • 非常感谢您的尝试...您能解释一下上面的表格和它的关系吗?以及我应该如何创建它等等..如果你有时间..
    • @aron n,我已经添加了一个简短的解释。我建议你拿一本好的数据库概念书来更好地理解。所涉及的概念过于庞大,无法在一篇文章中涵盖。
    猜你喜欢
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多