gpt4 book ai didi

MySql 防止/跟踪跨多个字段的重复字段

转载 作者:可可西里 更新时间:2023-11-01 07:40:26 27 4
gpt4 key购买 nike

我正在寻找一种简单的方法来检查多个零件表,以确定给定零件号在添加到给定表之前是否已经存在。

我目前想到的最好的想法是一个辅助表,它简单地将所有表中的每个 PN 列在一个列中,并带有一个唯一的键;但是我想知道是否有一种方法可以在不创建新表和索引的情况下做到这一点?

对于视觉学习者类型,我有四十多个或多或少遵循这种模式的表格:

表一

    |    id    |    PN     |    Other Columns    |      ----------------------------------------------      |    1     |  SomePn   |   ... ... ... ...   |        ...

表2

    |    id    |    PN     |    Still Other Columns  |    --------------------------------------------------    |    1     |  OtherPn  |  ... ... ... ... ...    |        ...

还有大约四十多个,每个表最多 50 列和最多 800 万条记录。

目标是,无论是通过软件 (Java) 还是 MySql 拒绝记录,都可以防止重复的零件号在多个表中蔓延。主 PN 表是唯一可能或合理的解决方案吗?

我知道数据结构不是最好的设计,并且正在进行返工,但我想知道一些建议的最佳实践以及针对此问题的建议解决方案。

最佳答案

添加表格是您的最佳选择。

表 1:

|  t1_id   |    PN     |    Other Columns    |  
----------------------------------------------
| 1 | pn_id | ... ... ... ... |
...

表 2:

|  t2_id   |    PN     |    Other Columns    |  
----------------------------------------------
| 1 | pn_id | ... ... ... ... |
...

表 3:

|  pn_id   |  PN  |
------------------
| 1 | ## |
...

虽然这可能不是您的情况下最容易实现的解决方案,但它是最佳的整体解决方案,因为您现在或将来都不会遇到扩展问题。如果您改为选择一种解决方案,即在更新/创建时检查所有表中是否有重复的零件号,那么随着您的表变大,这将花费越来越长的时间。

如果您可以保证它们永远不会变大,或者您永远不会添加零件号,您可能只需编写一个脚本来检查一次重复项,而根本不用担心另一个表。但是,从长远来看,您会想要添加另一个表来跟踪零件号。

关于MySql 防止/跟踪跨多个字段的重复字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15959822/

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