# 关系数据与KV转换：表号

| `TableID` | `Row No.` | ...  | 姓名    | 生日     | 手机号 | 分数 |
| :-------- | :-------- | :--- | :------ | :----------- | :--------- | :---- |
| `T24` | 1 | ... | `Tom` | `1982-09-28` | 1390811212 | 78 |
| `T24` | 2 | ... | `Jack` | `1996-04-12` | 1801222187 | 91 |

| `T24` | 2 | ... | `Jack` | `1996-04-12` | 1801222187 | 91 |
| `T24` | 3 | ... | `Frank` | `1982-09-28` | 1364571212 | 90 |

| `T24` | 3 | ... | `Frank` | `1982-09-28` | 1364571212 | 90 |
| `T24` | 4 | ... | `Tony` | `1977-03-12` | 1391113134 | 65 |
| `T24` | 5 | ... | `Jim` | `1992-07-19` | 1579915611 | 51 |

| `T24` | 5 | ... | `Jim` | `1992-07-19` | 1579915611 | 51 |
| `T24` | 6 | ... | `Sam` | `1978-09-12` | 1713665011 | 97 |

------------------------------------------------------------
我们需要给Key添加一个唯一的TableID，它是表的唯一编号，索引的唯一编号IndexID。这样，一行就有了数据库级别的全局键。

对于没有主键的表，TiDB会在所有关系表中添加一个隐藏列`_tidb_rowid`。如果表有INT类型的主键，那么主键的值将被用作键值对的行键。其中TableID在整个集群中是唯一的，IndexID和RowID在表中是唯一的，这些ID都是INT64类型。