Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 评级系统的数据库设计_Sql_Database Design_Rating System - Fatal编程技术网

Sql 评级系统的数据库设计

Sql 评级系统的数据库设计,sql,database-design,rating-system,Sql,Database Design,Rating System,应用程序处理用户和对象,用户使用3个功能对对象进行评级(每个功能一个评级) 编辑:最后一句话不清楚:我指的是所有对象共享的标准 如何有效地为这样一个系统设计数据库? 设计处理评级系统的数据库的最佳实践是什么 我想的是: 表: 使用者 物体 专长1 羽毛 feat3rates 和关系: 一个对象有很多个属性 专长1 羽毛 feat3rates 一个用户有许多 专长1 羽毛 feat3rates 我必须说,这个设计很奇怪。考虑: Object: ID, ... // Provided f

应用程序处理用户和对象,用户使用3个功能对对象进行评级(每个功能一个评级)

编辑:最后一句话不清楚:我指的是所有对象共享的标准

如何有效地为这样一个系统设计数据库? 设计处理评级系统的数据库的最佳实践是什么

我想的是:

表:

  • 使用者
  • 物体
  • 专长1
  • 羽毛
  • feat3rates
和关系: 一个对象有很多个属性

  • 专长1
  • 羽毛
  • feat3rates
一个用户有许多

  • 专长1
  • 羽毛
  • feat3rates

    • 我必须说,这个设计很奇怪。考虑:

      Object: ID, ...
      
      // Provided features cannot be shared between objects
      ObjectFeature: ID, ObjectID, ... 
      
      User: ID, ...
      
      UserObjectFeatureRating: UserID, ObjectFeatureID, Rating
      

      假设您不打算增加或减少要评分的评分功能的数量,我将制作一个评分表,跟踪用户、产品和三列(每个功能一列)


      因此,您有一个用户表、一个对象表和一个分级表,其中UserID和ObjectID作为组合主键,这样您就可以强制执行每个对象一个用户标准。

      您希望以这样一种方式封装数据,即每个表只包含与其需要处理的内容直接相关的信息。创建链接表以提供不同数据集(在本例中为用户和对象)之间的关系

      我将创建以下表格:

      用户-用户的基本信息:登录名、密码、用户ID,以及您需要的任何信息

      对象-要评级的对象:其名称/ID和属性

      功能-描述一种功能类型的表格,带有某种功能名称/ID。这可能从您的三种主要类型开始,但您始终可以展开/修改它。您还可以自定义每个对象将具有哪些可用于评级的功能

      ObjectFeature-对象和功能的链接表。包含每个表的主键,在两个表之间创建多对多关系

      UserRating-ObjectFeature和用户之间的另一个排序链接表。包含这两个表的主键以及分配的评级


      从关系的角度来看,这是一种比您所展示的更好的数据组织方式。通过它的设计,它清楚地说明了每组数据是如何连接的,并使可扩展性(例如,为速率添加额外的功能,让不同的对象有不同的特性来进行速率)更加清晰。

      感谢您的回答,但所有对象的功能都是相同的,我刚刚更新了问题,不清楚,但所有对象都共享了功能,我刚刚更新了问题,谢谢你的完整答案