Are there any best practices for creating a Like/Favourite feature in WordPress using custom MySQL tables and without any plugins?

Using WordPress’s wp_postmeta will help you a lot, instead of creating a new table. Functions like get_post_meta(), update_post_meta(), add_post_meta() etc, are readily available for use.

All you need is to create a meta_key (which in this case will be wp_likes) and the meta_value (number of likes will be stored), which can be easily retrieved using get_post_meta().

You can see the links below for references:

add_post_meta

get_post_meta

update_post_meta

delete_post_meta