4

我正在寻找一种简单的方法来检查多个零件表,以确定给定的零件编号是否已经存在,然后再将其添加到给定的表中。

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

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

表格1

    | 编号 | PN | 其他栏目 |  
    ----------------------------------------------  
    | 1 | 一些Pn | ... ... ... ... |
        ...

表 2

    | 编号 | PN | 其他栏目 |
    --------------------------------------------------
    | 1 | 其他Pn | ... ... ... ... ... |
        ...

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

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

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

4

1 回答 1

1

添加表是您的最佳选择。

表格1:

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

表 2:

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

表3:

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

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

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

于 2013-04-11T23:10:51.200 回答