【问题标题】:How to implement nested location and store it in a database with PHP/MySQL? [closed]如何使用 PHP/MySQL 实现嵌套位置并将其存储在数据库中? [关闭]
【发布时间】:2021-04-27 11:39:37
【问题描述】:

我正在尝试使用 PHP 和 MYSQL 创建一个可过滤的杂志数据库。

我已经完成了所有工作,但我在位置部分遇到了问题。我想显示一个嵌套选择,用于按位置过滤杂志,如下所示:

我在 MySQL 数据库上有一个 magazine 表,其中有一个 location 列。有时,一本杂志可能有多个位置。我应该为位置创建一个单独的表吗? 如果我想静态显示所有位置(仅使用 HTML),有很多国家没有杂志。我只想显示这些地点至少有一本杂志。

您能否解释一下并就如何实施它提供建议?

【问题讨论】:

  • 请先添加一些您尝试的代码。您可以从从数据库中获取magazines 的代码开始,然后您可以开始思考如何在您的页面中呈现它们。
  • @AndréWalker 感谢您的评论。实际上,我的后端有问题。我不知道实现这一目标的最佳方法是什么。每个杂志都有一个位置,有时还有多个位置。我不知道为他们使用单独的表格或静态执行。我可以在杂志表的位置列上放置一串位置,但如果这样做,我必须遍历整个数据库才能知道我拥有哪些国家/地区。
  • 对于嵌套位置 - 您需要学习如何在关系数据库中存储分层数据:drib.tech/programming/hierarchical-data-in-relational-databases 当涉及到在不同位置拥有相同杂志的可能性时 - 这是一个单独的问题。我会在位置和杂志之间创建额外的关联/连接/连接表。例如,您有location 表,您有magazine 表(从中删除位置),并创建一个新表location_magazine,其中至少可以包含2 列(location.idmagazine.id)。跨度>
  • @AndréWalker 非常感谢!

标签: php html mysql sql


【解决方案1】:

为每个位置添加 is_a_groupparent 数据。每个位置都必须有唯一的 ID(就像数据库中的所有其他数据一样)。

如果你想创建位置(或其他东西)是其他东西的集合(如Asia 在提供的图像上),请将is_a_group 设置为1。 当您使用is_a_group = 1 加载数据时,显示所有带有parent 的数据等于is_a_group 设置为1 的数据的ID。

【讨论】:

  • 非常感谢!我认为这是个好主意。但是,如果我为位置创建一个表,我必须创建一个关系表来设置杂志与其位置之间的关系,因为有时一本杂志有多个位置。这是实现这一目标的有效方法吗?
  • 是的,您可以使用1:n 关系(一个杂志可以有n 个位置)对于以后的数据处理,您需要连接w3schools.com/sql/sql_join.asp
猜你喜欢
  • 2016-06-07
  • 2014-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-14
相关资源
最近更新 更多