Datensätze verstecken statt löschen
Moin :)
Zur meiner Zeit der Webprogrammierung habe ich es immer so gehandhabt, dass wenn jemand einen Datensatz löschen wollte, dieser nicht wirklich gelöscht, sondern auf "isActive = 0" gesetzt wurde. Jeder neue Datensatz war Standardmäßig "isActive = 1".
Vorteil: Der Nutzer dachte er würde einen Datensatz löschen, jedoch war dieser noch in der Datenbank hinterleg. Für den normalen User aber nicht zu sehen. Bei Ninox scheint mir dieser Ansatz nicht zu funktionieren, da man zwar mit "isActive" arbeiten kann, jedoch muss man diesen bei der Tabellenansicht auf "isActive = 1" filtern. Sobald der Filter verändert wird, werden auch die eigentlich unsichtbaren Datensätze wieder sichtbar.
Wie handhabt ihr das? Ich möchte verhindern das ein User einen Datensatz löschen kann, genauso möchte ich aber auch nicht als Administrator der Datenbank jedesmal gefragt werden: "Hey, kannst Du mal xy löschen,..". Für Tipps wäre ich euch sehr dankbar :)
6 Antworten
-
Hallo Robert,
es gibt in den Eigenschaften auf Tabellenebene ein Feld lesbar wenn. Dort kannst du eintragen
---
isActive
---
Dann werden für alle nur die Datensätze sichtbar, welche isActive als "JA" haben. Wenn du etzt beim "Löschen darf" Admin anklickst. durfen die Benutzer die Datensätze nur über einen Button "löschen" (isActive:=false)
Leo
-
Leo, Du bist der Knaller! An die Tabelleneigenschaft "lesbar wenn" hatte ich gar nicht gedacht.
Funktioniert einwandfrei! Ich Danke Dir vielmals und wünsche Dir einen schönen Abend!
-
Mir folgendes aufgefallen:
Ich habe ein Dashboard erstellt das mir alle "gelöschten" Datensätze anzeigt -> select Kontakte where isActive = false
Aber da ich in den Eigenschaften der Tabellenebene (Kontakte) gesagt habe, das man nur noch die aktiven (isActive) sehen darf, sehe ich die "gelöschten" im Dashboard auch nicht mehr.
-
Mir ist folgendes aufgefallen sollte das natürlich heißen..
-
Hallo Benjamin,
wenn du mehrere User im Team hast und die gelöschten Datensätze als Admin sehen möchtest, dann kannst du bei lesbar wenn die formel so modifizieren:
---isActiv or userIsAdmin()
---
Wenn du die Datenbank nur für dich hast, dann kannst du in dem Dashboard ein Ja/Nein Feld "Gelöschte Datensätze anzeigen" anlegen. Jetzt brauchst du die ID von deinem Dashboard-Datensatz (sagen wir 1).Die Formel wäre dann:
---
isActive or record(Dashboard,1).'Gelöschte Datensätze anzeigen'
---
Wenn du jetzt den Ja/Nein anklickst, sollten in der Ansicht auch die gelöschten Datensätze sichtbar werden.
Leo
-
Vielen Dank Leo, da hast Du mir sehr weitergeholfen!
Content aside
- vor 4 JahrenZuletzt aktiv
- 6Antworten
- 1416Ansichten