I am trying to determine what data type to use for indexing transaction logs.
At least in the case of transactions per block, there is a hard limit.
Is it a fixed number and is there a maximum number?
There's no hard limit on LOG entries. In practice it is limited by the block gas limit and the cost of each LOG opcode.
Currently the minimum cost for a LOG is 375 (reference: https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations). In mainnet the block gas limit is 15M. So a program can generate up to 15*10^6 / 375 = 40000 log entries.
Ismael has added a good answer for your main question, so partial answer for the part about transactions per block:
The hard limit you've referred to is for Bitcoin, and it's a few years out of date.
For Ethereum, the two things to consider are:
Taking these into account, the current tx/block limit is ~714 transactions.