MySQL - Boolean Full-text Search
Yes, that is a good way to use FULLTEXT, especially if you need to 'cleanse' the data in any way, or gather text from related tables.

There is probably not much difference between having the new column in the same table or in a separate table.

The redundancy is wasteful.  However, there is no way to have any kind (FULLTEXT or other) of index that spans multiple tables.  Might it be better to have all the columns in the same table, and do FULLTEXT(this, that, the_other)?

And the redundancy is potentially error-prone.  This could be tempered by having a Stored Procedure that users must call when inserting or manipulating any of the text involved in the issue.  This SP would always make the copy for you.

When using a FT index with other things, such as

WHERE price &gt; 50
  AND MATCH(stuff) AGAINST(...)


the FT test will be done first.  Hopefully, that will select only a small number of rows.  Then the other tests will be applied to further filter the results.  When the situation is reversed (price is more selective than MATCH), well, too bad.

If you always have the MATCH, there is no need for indexing price, the index won't be used.