The main differences between InnoDB and MyISAM ("with respect to designing a table or database" you asked about) are support for "referential integrity" and "transactions".
- MyISAM supports Table-level Locking
- MyISAM designed for need of speed
- MyISAM does not support foreign keys hence we call MySQL with MyISAM is DBMS
- MyISAM stores its tables, data and indexes in disk space using separate three different files. (tablename.FRM, tablename.MYD, tablename.MYI)
- MyISAM not supports transaction. You cannot commit and rollback with MYISAM. Once you issue a command it’s done.
- MyISAM supports full text search
- You can use MyISAM, if the table is more static with lots of select and less update and delete.
- InnoDB supports Row-level Locking
- InnoDB designed for maximum performance when processing high volume of data
- InnoDB support foreign keys hence we call MySQL with InnoDB is RDBMS
- InnoDB stores its tables and indexes in a table space
- InnoDB supports transaction. You can commit and rollback with InnoDB