Tax is an optional column.  It is filled or not filled depending on whether the transaction was taxable.  So, it appears for EVERY transaction.  If there are rules, you will need to enforce them using code although a flag in your transaction type table might help.  I don't know what the rules are so I can't tell you what to do but there are three possibilities for each transaction type.  Tax is required; which means it must be filled in.  Tax is optional or Tax is N/A and so not allowed.  If you can't make a "required" or "never" statement, Tax is most likely optional and might appear on most transaction types.
		
		
	 
HI Pat, 
This is not like retail sales where every purchase has a domestic tax except for exempt mdse. That said, the tax in question is levied by the home government of the account institution (generally either a Corporation or a fund institution which may or may not be non-profit).  So far, I have only seen tax on the sales and dividends of ETF's (Electronically Traded Funds, a term that generally denotes the stock is traded on a foreign stock exchange, and dealt by a 3rd party broker, it is that broker that must levy the taxes according to either that Country's laws, or the laws of the foreign exchange entity such as Hong Kong for instance).  That's not to say I won't ever have a non-ETF taxed, I don't know that answer, and I also think one would need to know the future to decide such a thing.
Otherwise, 
so far, taxes are levied on my personal income, based on the U.S. Income tax, not the domestic trades, and that is accounted for in my personal finances, not this database.
I don't know the rules of these taxes levied on the trades/dividends by foreign entities, and it's also possible that they could change over time.  So I don't intend to even learn such rules, there is no need for me to do that, simply to enter the transactions as levied. Remember, this is not accounting for a retail POS, but otherwise this is just like accounting/bookkeeping, which can generate stats.  Therefore, tax is optional on a entry-to-entry basis in this database.
So far, at a glance, it looks as if only 10-20% of my transactions are taxed. That's why I moved taxes to another table. For some reason, I thought (or misunderstood?) that when a field is not used in most transactions, part of normalization was to move it to a different table (because it doesn't need to be entered on every transaction). You say it was a column. By that reasoning Fees is also a column, so I need to move fees back to the transaction table too?