Database design 在一个类别中高效地存储多个密钥

Database design 在一个类别中高效地存储多个密钥,database-design,Database Design,我正在为一个项目使用MySQL数据库和JSP。在我的项目中,有哲学、技术、艺术、体育等类别。这些类别有多种价值观,如曲棍球、板球、足球等。如果我使用数据库存储这些价值观,就会出现冗余。 e、 运动板球、运动曲棍球等 所以我的问题是,是否有任何有效的方法来存储这些值,以便当任何人进入蟋蟀比赛时,将其与运动类别中的蟋蟀比赛进行比较?听起来你有一个经典 一个类别可以有许多值记录,一个值可以与许多类别记录相关联 要对此进行建模,您需要创建三个表:category、value,以及一个连接表categor

我正在为一个项目使用MySQL数据库和JSP。在我的项目中,有哲学、技术、艺术、体育等类别。这些类别有多种价值观,如曲棍球、板球、足球等。如果我使用数据库存储这些价值观,就会出现冗余。
e、 运动板球、运动曲棍球等


所以我的问题是,是否有任何有效的方法来存储这些值,以便当任何人进入蟋蟀比赛时,将其与运动类别中的蟋蟀比赛进行比较?

听起来你有一个经典

一个
类别
可以有许多
记录,一个
可以与许多
类别
记录相关联

要对此进行建模,您需要创建三个表:
category
value
,以及一个连接表
category\u value

类别

  • 身份证
  • 名字
  • 等等

  • 身份证
  • 名字
  • 等等
类别值

  • 类别
  • 瓦卢伊德

    • 典型的DBMS不理解“指针”的概念,因此为了“关联”两个表,必须将一个表中的某些值物理复制到另一个表中。此外,无论何时创建索引,索引列中的数据副本都将存储在该索引中

      数据库中没有指针有很好的理由。最值得注意的是,DBMS可以在物理存储中移动数据,而不用担心挂起指针。仅此一点就值得增加存储需求(与使用指针而不是副本的假设DBMS相比),因此您只能接受它


      也就是说,一定要规范化您的数据。已经涵盖了M:N关系,但如果这实际上是1:N(即,一个值不能在多个类别中),则需要如下内容: