【问题标题】:Database table design of a settings system设置系统的数据库表设计
【发布时间】:2017-01-11 00:41:42
【问题描述】:

你能帮我设计数据库吗?我正在尝试做一个包含一个类别的迷你系统,在一个类别下有很多子类别,在一个子类别下有很多主题,在一个主题下有很多问题。所以我要为其中四个添加添加按钮Category > SubCategory > SubCategoryTopic > Question

显然,所有这些都必须是动态的,但我打算将其显示为下拉列表,然后我认为当存储许多主题时它看起来不友好,但我想知道您是否可以帮助我处理我的数据库餐桌设计?

【问题讨论】:

  • 不,先生@AndréFerraz
  • @ranger 而不是仅仅断言它不是重复的,请解释链接的问题/答案如何没有帮助您,以便我们能够提供帮助。据我了解,链接问题的接受答案将解决您的问题。

标签: sql database-design


【解决方案1】:

这样的?显然它是非常简单的,但关系都在那里:

我不太清楚您所说的“计划将 'it' 显示为下拉菜单”是什么意思。我认为分页列表比下拉列表要好得多,但我不太确定您想要什么。

【讨论】:

  • 您也可以包含子类别吗?是的,起初我计划为每个表放置一个动态下拉列表,因此如果我从下拉列表中选择一个类别,第二个下拉列表将回显该类别下的子类别信息,然后第三个下拉列表将回显该子类别下数据库中的子类别主题字段和最后第 4 个下拉列表将在该子主题下回显问题。所有这些都是为了我在调查系统@Aaron Dressler 上的设置
  • 在这个设计中,子类别可以在不创建额外的子类别表的情况下表示。如果“类别”是“子类别”,那么它将在 ParentCategoryID 字段中具有“父”类别的 ID(自引用关系)。如果没有子类别,则 SubCategoryID 字段将为 NULL。您可以通过使用 AJAX 首先获取没有 ParentCategoryID (ParentCategoryID == NULL) 的类别来执行您提到的下拉列表。做出选择后,轮询服务器以查找 ParentCategoryID = Selected ID 的子类别。对主题和问题重复此策略。
  • 当然,如果你绝对需要为SubCategory添加一个单独的表,那么将ParentCategoryID FK替换为SubCategoryID,创建一个类似于Category的表,称为SubCategory,添加额外的字段,然后将主题FK指向SubCategoryID 而不是 CategoryID。
  • 谢谢你!!我只是认为下拉菜单看起来很糟糕,特别是如果存储了很多数据。你建议我改用什么?
  • 不太确定。不过,这种结构非常灵活。因此,如果您因为下拉菜单变得过于杂乱而需要摆脱它们,您可以轻松地使用引导面板、手风琴甚至单独的页面。
猜你喜欢
  • 2012-02-12
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 2014-10-23
  • 2015-10-26
  • 2020-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多