0

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

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • Robert_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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!

    • Benjamin0815
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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. 

    • Benjamin0815
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Mir ist folgendes aufgefallen sollte das natürlich heißen..

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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 

    • Benjamin0815
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Vielen Dank Leo, da hast Du mir sehr weitergeholfen!