# Identifiers (ids) > ` > draggableId` and ` > droppableId` A `` and a `` have an id. These are `draggableId` and `droppableId` respectively. ## String We expect an id to be a `string` ```js type Id = string; type DroppableId = Id; type DraggableId = Id; ``` > More information: [types guide](/docs/guides/types.md) ## Ids must be unique A id must uniquely identify a `` or `` within a ``. So if you have multiple connected lists, each `` needs to have a unique id and each `` needs to have a unique id, even if the item is in a different list. The id must also be unique even if the `type` argument on the `` is different. ## Ids must be a string Right now it is important that all `Id`'s be strings. `rbd` will throw an error if an `Id` is not a string. ## Avoid reusing ids For simplicity, it is best to avoid changing a `draggableId` or `droppableId` when a reorder occurs. The safest option is to associate an id with an piece of data and do not update the id between reorders. You can change the `draggableId` or `droppableId` at any time except during a drag. Including after reorder. However, to avoid an exception you need to avoid reusing id's between two components. This can happen if you base a draggableId or droppableId on an index. > **Don't base an id on a index** ### What this looks like internally #### 1. Update droppable old droppableId: "droppable-0" new droppableId: "droppable-1" 👉 delete reference to "droppable-0" 👉 add reference to "droppable-1" #### 2. Update droppable old droppableId: "droppable-1" 😢 new droppableId: "droppable-2" 👉 delete reference to "droppable-1" 😢 (will remove reference to our new "droppable-1") 👉 add a reference to "droppable-2" #### 3. Update droppable old droppableId: "droppable-1" 💥 new droppableId: "droppable-5" 👉 delete reference to "droppable-1" 💥 (will cause an exception because "droppable-1" is not found) ## Could we change these rules? Yep! But we do things this way for simplicity and performance. Feel free to continue this conversation in a Github issue if you feel strongly about it. [← Back to documentation](/README.md#documentation-)