I was wondering if it is bad practice to have a file_table { id, name, status} and a extra_data table { id, fileId FK(file.id), otherData}. So far all my tables go forward and I never needed to get the id of one table then do a query to get more data using an id.
Is this bad practice and if so then why?
This is not a bad practice In fact it is how a robust design should look. Right now you established a ‘relationship’ with tables file and extra_data. However, in order the DB is normalized you should account the cardinality of the relationship between tables. Depending on that cardinality you will know how to place the FK or maybe you ended up creating a new relationship table. More on cardinality could be found here