gpt4 book ai didi

php - 外键与 SET 数据类型 MySQL

转载 作者:行者123 更新时间:2023-11-29 03:33:54 24 4
gpt4 key购买 nike

我有一个 MySQL 数据库,其中包含我从 MS Access 数据库导入的所有电影的列表。一个字段包含电影类型的可能值,电影可以有多种类型,所以我需要一种支持此功能的数据类型。在访问中,我可以将一个表“流派”链接到我的表“电影”中的字段“流派”,因此我可以选择无,每部电影一种或多种流派。当我切换到 MySQL 时,我使用 SET 数据类型来定义所有可能的值。到目前为止,一切都运行完美。我现在正尝试在 html/php 中设置一个表来显示 mysql 表。我希望表格能够排序:标题、流派、质量、评级等。但是对于流派排序,我需要来自集合数据类型的可能值。我不知道是否可以使用一些 php 命令/代码获取值,但是在我在网上潜伏了一段时间之后,我没有看到很多应用程序出于明显的负面原因使用 SET 数据类型.

所以我开始研究外键的可能性。我在这里遇到的问题是 - 据我所知 - 键只能包含一个可能的值,这让我回到了问题的开始。我确实喜欢外键的想法,因为它可以让我更轻松地向列表中添加新类型。

有没有可能我忽略了?是否可以从 SET 类型获取值到 php 或使用具有多种可能性的外键用于一条记录?

我知道我也可以手动将每个类型放入我的 php 脚本中,但我想将它们全部放在一个地方。这样一来,如果我添加一部电影的类型我还没有定义,我可以只在一个地方更新它,其他一切都会适应它。

最佳答案

Dagon 绝对正确 - 您的后端表格结构存在问题。您希望为多对多关系建模,而此时您当前的后端所能做的最好的事情就是建立一对多关系。

回顾:你有可以有多种类型的个人电影而且你有与许多电影相关的个人类型

关系数据库实际上不使用一种关系对多对多关系进行建模,它们使用一对多关系的递归并创建两个连接。

要为多对多关系建模,您需要三个表一张电影 table (我想你已经有了)流派表(我想你已经有了)正如 Dagon 所建议的那样,联结表将由电影 ID 和流派 ID 两个字段组成。

然后您设置两个单独的一对多关系。一个从电影表到联结表,一个从类型表到联结表。

现在,如果您想了解一部电影的所有流派,您只需过滤相关电影 ID 的联结表,如果您想了解特定类型的所有电影,您可以根据流派 ID 过滤联结表。

设置查找以将您的流派 ID 与文本描述相关联,然后您可以随意更改文本描述,如果您做对了,这将是一件很棒的事情,它将升级您表单中的每个值。

这是 SQL 设计和关系数据库设计背后的集合代数的绝对基础概念。

关于php - 外键与 SET 数据类型 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26287920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com