docs: public void addForeignkey(String relationName, String remoteTable, List localColumns, List remoteColumns)
      {
          ForeignkeyDef foreignkeyDef = new ForeignkeyDef(relationName, remoteTable);
  
          // the field arrays have the same length if we already checked the constraints
          for (int idx = 0; idx < localColumns.size(); idx++)
          {
              foreignkeyDef.addColumnPair((String)localColumns.get(idx),
                                          (String)remoteColumns.get(idx));
          }
  
          // we got to determine whether this foreignkey is already present 
          ForeignkeyDef def = null;
  
          for (Iterator it = getForeignkeys(); it.hasNext();)
          {
              def = (ForeignkeyDef)it.next();
              if (foreignkeyDef.equals(def))
              {
                  return;
              }
          }
          foreignkeyDef.setOwner(this);
          _foreignkeys.add(foreignkeyDef);
      }