gpt4 book ai didi

mysql - 使用多个表在 MySQL 中存储数据的一种更有效的方法

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:57 25 4
gpt4 key购买 nike

我有一张 table 有很多问题。我在某些字段中保存以逗号分隔的数据,之后我无法搜索它们。然后,在网上搜索了很多解决方案后,我决定将一些表格分开。

我的一张 table 变成了 5 张 table 。

第一个表称为 agendamentos_diarios,这是我要存储日程安排的表。

第二个表是名为 tecnicos 的表,我正在存储技术人员的姓名。两个字段,id(主键)和名称(varchar)。

第三个表称为 agendamento_tecnico。这是表(链接)我要存储第一个和第二个表的 ID。那是因为有一些时间表将由一名或多名技术人员参加。

第四张表称为 veiculos(车辆)。车辆的id和名称(两个字段)。

Fith 表是第一个表和 vehicles 表之间的链接。一样。我要存储时间表 ID 和车辆 ID。

我有一张比我想说的更能解释的图片。

Diagram

我做得对吗?有没有更好的方法将数据存储到 MySQL?

最佳答案

我同意@Strawberry 关于 id 的观点,但通常是 Hibernate 映射类型执行此操作。如果您不使用 Hibernate 来设计您的表,您应该从 agendamento_tecnico 和 agendamento_veiculos 中取出 ID。这样你就保证了唯一性。如果您不想这样做,请在这些表的 FK 字段上创建一个唯一键。

我注意到您将车辆表与技术人员分开了。在您的模型上,同一辆车可以同时处于两个不同的时间表(这没有意义)。如果车辆链接到 agendamento_tecnico 表会更好,该表将变成 agendamento_tecnico_veiculo。

看着你的 table ,我注意到(我是巴西人)你有一个名为“servico”的列,意思是服务。您的时间表仅针对一项服务设计。在同一个时间表上你有不止一项服务怎么样?要解决这个问题,您可以创建一个表服务并创建一个 m-n 与时间表的关系。创建一些报告并在您的数据库中很好地分离服务会更容易。

还有一个 nome_cliente 字段,表示该计划的客户端。如果您有一个 cliente(客户)表并将时间表与 FK 链接,那就更好了。

如前所述,没有正确答案。你必须考虑你的问题以及它可能的发展。正确地为数据库建模将避免以后出现很多令人头疼的问题。

关于mysql - 使用多个表在 MySQL 中存储数据的一种更有效的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20500555/

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