Not a bad practice
- If
ON DELETE CASCADEis used accidentally, the entire hierarchy can be deleted.
- During Self Join, table scans could occur more than twice. (SQL JOIN)
Self Join simply accesses the same table twice with aliases, but from the engine's perspective, they are two independent relation instances.
/notebo
Self Join is possible without a Foreign Key, but in that case, orphaned data (children without parents) can occur, so data integrity should be ensured with a Self-Referencing Foreign Key constraint.

Seonglae Cho