【问题标题】:Is this database structure designed efficiently?这种数据库结构设计是否有效?
【发布时间】:2021-07-18 21:44:16
【问题描述】:

我需要设置一个数据库,用户可以在其中创建类别内的类别,类别内是具有多个不同统计数据的多个对象

层次结构示例:

Cartoon > category
Simpsons > category (within the cartoon category)
Homer > object
Homer object stats > stupidity: 117
Homer object stats > color: yellow

我不能只做一张这样的表:

-----------------------------
|character| Stupidy | color | 
-----------------------------
|Homer    | 111     |yellow |

因为我需要用户能够为每个对象带走并自行添加不同的对象统计信息(例如添加重量统计信息并删除颜色统计信息),所以统计类型会有所不同,而且我不知道有数千个类别'不希望用户为不同的对象生成数千个表。

我的数据库设置在下面的 google 电子表格中,我觉得它可以工作,但我不是最好的数据库设置,所以我正在检查是否有一些改进。

我需要能够显示数据中的表格,这些表格显示与某些类别和/或对象有关系的所有项目值,例如所有辛普森一家角色的重量或只是本垒打的重量。

https://docs.google.com/spreadsheets/d/1fHrugYv6JA3id_5zDxWaE-5IUNNGFo5yA1DZ1xQlqtg/edit?usp=sharing

【问题讨论】:

  • 我相信您需要类别及其子类别,然后每个子类别都有对象及其状态。是你的意思吗。请确认为您设计数据库
  • 是的,一个类别有一个子类别,每个子类别都有对象及其状态或统计信息。只要它保存对象的键和值,例如头发(键),红色(值)。谢谢!
  • 好的。 PLZstandby 我会为你设计它

标签: database database-design data-structures


【解决方案1】:

这是您的数据库设计:

说明:

  1. 可能有很多类别,每个类别可能有很多子类别
  2. 每个子类别可能有许多对象,并且
  3. 每个对象可能有许多键和值

干杯!!

【讨论】:

  • 让别人给你加分是傲慢和不恰当的。也许其他人可能有其他建议。
  • 对此我很抱歉,但我只是在开玩笑
  • 谢谢,这与我的想法相似。我在 Object_Stats 表中添加了 sCat_id,因为我不知道如何提取子类别中的 Object_Stats 行。使用此设置,如果我想在 Object_Stats 中说出所有带有文本“x”的键,则该对象位于某个子类别中。
  • 您不需要在 Object_stats 中添加 sCat_id,因为它连接到已经有 sCat_id 的 Objects 表。我的回答对您有帮助吗?是否符合您的需求?
  • 是的,我看到它有效,但我现在的主要问题是如何使用带有该设置的数据库来尝试从对象位于某个子类别中的 object_value 表中获取值。我是“加入”的新手,你认为这种说法会奏效吗? SELECT object_value.value WHERE object_value.keys == "weight" & objects.subCat_id = "1" FROM object_value INNER JOIN objects ON objects.id = object_value.object_id;
猜你喜欢
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 2015-06-17
相关资源
最近更新 更多