code: private void addRoutedTableIntoContext(TableWrapper table, ShardRouteConfig routeConfig, boolean appendAlias) {
          FrameContext frameContext = this.getStack().peek();
          String scName = table.getSchemaName();
          String tbName = table.getName();
          String tbAliasName = tbName;
          if (table.getAlias() != null && table.getAlias().getName() != null) {
              tbAliasName = table.getAlias().getName();
          } else {
              if (appendAlias) {
                  table.setAlias(new Alias(tbName, true));
              }
          }
          String sdKey = DDRStringUtils.toLowerCase(routeConfig.getSdKey());// sdKey可以为null,当为null时需要通过context路由
          if (scName != null) {
              StringBuilder sb = new StringBuilder();
              sb.append(DDRStringUtils.toLowerCase(scName));
              sb.append('.');
              sb.append(DDRStringUtils.toLowerCase(tbAliasName));
              sb.append('.');
              sb.append(sdKey);
              String key = sb.toString();
              putIntoContext(frameContext, key, table);
              putIntoContext(frameContext, key.substring(scName.length() + 1), table);
              putIntoContext(frameContext, key.substring(scName.length() + 2 + tbAliasName.length()), table);
          } else {
              StringBuilder sb = new StringBuilder();
              sb.append(DDRStringUtils.toLowerCase(tbAliasName));
              sb.append('.');
              sb.append(sdKey);
              String key = sb.toString();
              putIntoContext(frameContext, key, table);
              putIntoContext(frameContext, key.substring(tbAliasName.length() + 1), table);
          }
      }
docs: value:'scName.tbAliasName' value:table
  @param table
  @param appendAlias