Some features are required for all objects, other only for specific types of objects. One solution could be store all required fields in table objects and the rest in table objects_extras?
Solo tu puoi decidere ciò, in base ai bisogni [dati] del tuo objectd.
Potresti rimanere con una tabella che include tutto, presumibilmente con voci nullable per quelle che non si applicano a tutti gli oggetti. È il più semplice e semplice da mantenere.
Oppure, si potrebbe andare con un progetto di "sottoclasse", con una tabella principale con tutte le cose comuni, oltre a un numero di altre tabelle "extra", una per ogni sottoclasse di oggetti. Non è molto più complesso da gestire, ma potrebbe darti alcuni benefici in termini di prestazioni se ogni sottoclasse ha un lotto di campi personalizzati (e non usi mai "seleziona *" nelle tue query ).
Oppure, puoi andare su extreme e andare in fondo alla strada (la tana del coniglio?) di Entity-Attribute-Value. Questo ti dà la completa flessibilità di quale proprietà va con quale oggetto, ma arriva al prezzo di [potenzialmente molto] scarso ridimensionamento, ma suppongo che sia ancora un'opzione.
Il mio suggerimento: prototipare ogni metodo e vedere come ognuno si sente.