If all items will have all attributes, having one table generally makes sense.
If some items will only have some of the attributes, having multiple tables makes sense.
To make ORM more efficient, something like lazy attribute fetching might come in handy. Thing is, it's still fairly rare; don't worry about optimization unless you really think it'll be an issue. Premature optimization isn't an efficient place to spend your time, by definition.