..brauche ich bei den Grundstücken jeweils x Spalten Nutzung-Jahr und müsste alle 500 Häuser durchsuchen..
Das klingt wieder sehr nach Excel-Welt. Tatsächlich beschreibst Du in dem Satz gleichzeitig ein (Excel)typisches Vorgehen und die daraus resultierenden Probleme. Du musst Dich gedanklich davon verabschieden, wenn Du ein ordentliches Datenmodell bekommen willst.
In Excel ist es zunächst ein Kinderspiel irgendwo die 2., 3., x. Spalte dranzunageln. Man kann irgendwie Daten unterbringen und irgendwie Bezüge „erhalten“.
In Datenbanken ist es anders, Du definierst eine relativ statische Struktur, wo immer gleichförmige Informationen in Listen(Tabellen) gespeichert werden. Diese Tabellen sind dann gemäßt der Natur einer relationalen Datenbank zwar beliebig in der Struktur, aber zu einem gegebenen Nutzungszeitpunkt nicht adhoc erweiterbar, nicht derart, dass man on-the-fly einfach noch eine Spalte anbringt, die dann auch spontan für den Endanwender verfügbar ist und in allen Queries, Formularen und Reports durchschlägt. Geht alles, aber eben halt in der nächsten Version.
Die natürliche Form der "Erweiterung" einer Tabelle ist ein neuer Datensatz, nicht eine neue Spalte.
Die Vorschläge von
@ukulele sind dazu genau richtig.
Eine Historisierung von Daten (neuer Datensatz bei Änderung des Nutzungstyp für einen Zeitraum) ist genau in diesem Anwendungsfall sehr hilfreich und bietet einen großen Nutzen. Wenn Du eine Suche auf einen bestimmten Zeitraum einschränkst, findest du dann eben auch genau die Daten, die in dem Zeitraum gültig waren. In der Modellierung kannst Du dafür vielleicht auch eine JSON Spalte nehmen, die das abbildet.
Dieses Muster lässt sich vermutlich auch auf viele andere Bereiche übertragen. Beispiel Städtenamen oder Straßennamen in Ost- und Westdeutschland. Karl-Marx-Stadt, Mohrengasse, usw. dann diverse Denkmäler, die aufgebaut und wieder abgerissen werden. Zentrale Plätze, die entsprechend umbenannt werden. Alles mit zeitlich begrenzter Gültigkeit.
Alle diese Namen sind irgendwann mal in Taufregister usw. eingetragen worden und sind schwer auffindbar, wenn es gar nicht oder nicht zeitlich korrekt eingetragen ist. Dann noch Änderungen von Schreibweisen, Hochdeutsch, Dialekte, bei historischen Betrachtungen / Recherche kommt man auch hier um zeitliche Eingrenzbarkeit nicht herum, ein Muster.
Aber auch nochmal der Hinweis auf die Grenzen der Modellierung. Ob nun eine Mühle als eigenständiges Gut oder Teil eines Grundstücks geführt wurde, ich weiß nicht, wie nah man der Realität / Vergangenheit kommen will oder muss. Man muss auch einen Kompromiss zwischen Aufwand und Nutzen finden. Statt der Abbildung von Besitzverhältnissen wäre zur Zuordnung u.U. auch der Standort (Geolocation) geeignet. Auch dabei ist es hilfreich, die Möglichkeiten zu kennen, die es technisch gibt. Volltextindizierung bswp., noSQL Erweiterungen einer relationalen DB, JSON, Arrays, EAV oder Geometrie Daten, es gibt einen Haufen Möglichkeiten. Man muss/kann nicht die Wirklichkeit 1:1 in einem relationalen Modell abbilden, deswegen nennt man es vermutlich Modell.