"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Het gebeurd ook nog wel eens dat een user eist dat al zijn postings worden verwijderd als de user wordt gedelete (is dit hard te maken eigenlijk?) ..
Als ik een CMS zou maken , zou ik dus 2 opties er in zetten :
1 : Deleted users naar een dummy account zetten zodat de posts niet gek gaan doen.
2 : Na het deleten ook de posts deleten.
D.m.v. een query zou je nog alle links die linken naar de "gedelete" user kunnen updaten naar iets zinvols..
Als je ook de content automatisch verwijdert (foreign key) wanneer je de user verwijdert, verziek je inderdaad je hele forum/website. No-go imho
Reden genoeg voor ons om in onze Algemene Voorwaarden op te nemen dat we géén accounts verwijderen.Reveller schreef op vrijdag 04 augustus 2006 @ 14:09:
Stel dat GoT de posts van een bepaalde user zou verwijderen, dan slaan bepaalde draadjes geheid nergens meer op.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
- referentiele integriteit met content die de user geplaatst heeft. dat een user om wat voor reden dan ook de toegang ontnomen wordt, wil niet meteen zeggen dat al zijn content weg moet.
- terughalen van gegevens mbt. deze user. Fysiek verwijderen betekent dat je alle data omtrent deze user kwijt bent (tenzij je moeilijk gaat doen met een soort prullenbak).
Dus gewoon de account deactiveren en eventuele ongewenste content editen/op inactief zetten.
Certified smart block developer op de agile darkchain stack. PM voor info.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Levert dat geen (preformance) problemen op? Ik kan me voorstellen dat sommige tabellen dan onwijs groot worden.Janoz schreef op vrijdag 04 augustus 2006 @ 14:51:
In mijn applicaties die iets met databases te maken hebben delete ik nooit wat. Ik neem meestal een boolean op die aangeeft of het record gedelete is. Deze komt dan in overzichten niet meer terug.
Wat vind je onwijs groot?Speedener schreef op vrijdag 04 augustus 2006 @ 15:01:
[...]
Levert dat geen (preformance) problemen op? Ik kan me voorstellen dat sommige tabellen dan onwijs groot worden.
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Sessie tabel van een middelgrote website
Als het aantal records in je database inverse invloed heeft op je performance, doe je iets fout.Speedener schreef op vrijdag 04 augustus 2006 @ 15:01:
[...]
Levert dat geen (preformance) problemen op? Ik kan me voorstellen dat sommige tabellen dan onwijs groot worden.
(Tenzij je natuurlijk continu de hele tabel wilt ophalen.)
[ Voor 8% gewijzigd door Not Pingu op 04-08-2006 15:09 ]
Certified smart block developer op de agile darkchain stack. PM voor info.
Sole survivor of the Chicxulub asteroid impact.
5000+ rijen in een DB is niks. Die paar extra records die je hebt in een tabel van eventueel verwijderde users zijn echt te verwaarlozen.Speedener schreef op vrijdag 04 augustus 2006 @ 15:07:
[...]
Sessie tabel van een middelgrote website. Maar ik merk het regelmatig ook al bij gastenboeken die 5000+ posts hebben, dat de laad tijd soms flink op kan lopen.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
-NMe- schreef op vrijdag 04 augustus 2006 @ 14:27:
[...]
Reden genoeg voor ons om in onze Algemene Voorwaarden op te nemen dat we géén accounts verwijderen.
Netjes hoor"[...] Een lid is te alle tijde gerechtigd om zijn/haar account op te zeggen. De gegevens van het desbetreffende account zullen worden verwijderd. Geplaatste reacties kunnen niet worden verwijderd, aangezien zij integraal onderdeel uitmaken van de discussies." (bron)
Geef je daarmee de auteur niet het recht te eisen dat zijn berichten verwijderd worden? Een beetje off-topic, maar ik wil niet zien dat achteraf blijkt dat je verplicht gesteld kunt worden om berichten van een user te verwijderen, zonder dat ik daarmee rekening gehouden had. Nu ben ik nog in de fase dat ik beslissingen kan nemen die de teloorgang van de integriteit kunnen beperken (bijvoorbeeld door geen threaded comments te implementeren zoals op tweakers.net)."[...] Het copyright van reacties berust bij de individuele auteurs."
[ Voor 3% gewijzigd door Reveller op 04-08-2006 15:15 ]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Dan een praktische kwestie. Tweakers zegt de gegevens van de account te verwijderen, maar niet de reakties. Ik heb hier nog een aantal vragen over:
- worden met de account gegevens de NAW gegevens etc. bedoeld?
- blijft de username wel bestaan en wat gebeurt er als ik op zo'n username klik? Ga ik dan gewoon naar het profiel van die user (waar dus alleen een username, registratiedatum en aantal posts zal staan)?
- wordt ook het email adres verwijderd en kan deze persoon later met zijn eigen email adres weer een nieuw account aanmaken, of blijft het email adres wel staan?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Ik weet niet precies wat Tweakers.net daarover in de voorwaarden heeft staan, maar ik ga er in ieder geval vanuit dat dingen die ik hier post nooit meer kan verwijderen (en zorg dus ook dat ik geen dingen post die ik niet gepubliceerd wil hebben).
Dat klopt, maar het recht tot openbaarmaking is essentieel onderdeel van het auteursrecht. In principe ga je bij het posten akkoord met openbaarmaking (je geeft T.net het recht om dat te doen). Het punt waar het dan om draait is of je dat terug kunt draaien. Ik denk dat de passage uit de AV voldoende is om te zorgen dat hier geen discussie om kan intstaan (en dus posts on-line mogen blijven), maar goed je weet nooit.-NMe- schreef op vrijdag 04 augustus 2006 @ 15:18:
Auteursrecht is wat anders dan eigendomsrechten. Als je een boek koopt, dan is dat boek van jou, maar de schrijver heeft het auteursrecht.
Het behoud van auteursrecht voor posters lijkt me verder vrij essentieel. Anders zou elk stukje code dat je hier post in eens "van T.net zijn". Dan post geen mens nog bruikbare code, a) omdat je het dan kwijt bent en b) omdat iedereen die het gebruikt het risico loopt om door tweakers gedaagd te worden wegen copyrightschending
Regeren is vooruitschuiven
Een bijzonder punt is echter moderatie op een forum. In principe worden dan zaken gewijzigd waar de auteur het niet mee eens kan zijn.
Ja, maar het lijkt me dat je dat kunt ondervangen door iets als "<website> heeft het recht reakties te wijzigen wanneer de inhoud hiervan niet in overeenstemming is met de gebruikersvoorwaarden" of zoietsThe - DDD schreef op vrijdag 04 augustus 2006 @ 16:15:
Een bijzonder punt is echter moderatie op een forum. In principe worden dan zaken gewijzigd waar de auteur het niet mee eens kan zijn.
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Reveller schreef op vrijdag 04 augustus 2006 @ 16:31:
[...]
Ja, maar het lijkt me dat je dat kunt ondervangen door iets als "<website> heeft het recht reakties te wijzigen wanneer de inhoud hiervan niet in overeenstemming is met de gebruikersvoorwaarden" of zoiets
9. Tweakers.net BV houdt zich uitdrukkelijk het recht voor om de vormgeving en/of inhoud van berichten, reacties of welke andere vorm van content ook, te wijzigen of te verwijderen.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
- Boolean bij de user omzetten zodat user niet meer getoond wordt in de querys
- Alle rechten van een gebruiker verwijderen
Just my 2 cents...
Wat ik doe is gewoon de user disablen (1/0) in een database. In een goed opgezette database staan de users in een aparte tabel dan de posts en comments. Een fout die ik ook soms zie is dat je een SQL achteraf in je code filtert. Imho moet een SQL query het kleinste mogelijk aantal records verkrijgen die je rechtstreeks in je code kunt flikkeren. Ik heb inderdaad mensen gezien die de rechten vaststellen in code (if($rights=="poster") { echo $username
Pandora FMS - Open Source Monitoring - pandorafms.org
Dit is een andere benadering dan de meesten hierboven aandragen. Het ligt helemaal aan de situatie hoe je het wil aanpakken. phpBB heeft geen referentiele integriteit, er zijn nergens constraints in het datamodel. Ik ben daar op zich wel voorstander van, omdat het je helpt de data consistent te houden op database niveau. Een programmeerfoutje op je 2e tier hoeft dan geen drastische gevolgen te hebben.
Klik hier om mij een DM te sturen • 3245 WP op ZW
Verwijderd
DexterDee schreef op vrijdag 04 augustus 2006 @ 23:26:
x heeft geen referentiele integriteit, er zijn nergens constraints in het datamodel. Ik ben daar op zich wel voorstander van, omdat het je helpt de data consistent te houden op database niveau.
Integendeel, een programmeerfout kan volgens mij juist wel drastische gevolgen hebben.DexterDee schreef op vrijdag 04 augustus 2006 @ 23:26:
Een programmeerfoutje op je 2e tier hoeft dan geen drastische gevolgen te hebben.
Het doel van constraints is om de integriteit van de database te waarborgen.
[ Voor 13% gewijzigd door Verwijderd op 05-08-2006 21:30 ]
Je hebt me verkeerd begrepen. Ik zei dat het geen grote gevolgen hoeft te hebben, niet dat het niet alsnog kan. Constraints kunnen je gewoon in sommige gevallen helpen om minder schade toe te brengen aan de data door een programmeerfout. Als je bijvoorbeeld een where clause in je SQL vergeet waardoor alle gebruikers worden weggegooid, terwijl je er er maar 1 wilde weggooien, dan kan het handig zijn dat je een constraint hebt gelegd naar een tabel met geschreven artikelen, waardoor er een stuk minder gebruikersrecords naar de prullenbak gaan. Of nog beter, als je een record insert met een missende foreign key relatie, dan resulteert de query in een error en niet in een nieuw record die niet meer referentieel integer is.Verwijderd schreef op zaterdag 05 augustus 2006 @ 18:16:
Integendeel, een programmeerfout kan volgens mij juist wel drastische gevolgen hebben.
Het doel van constraints is om de integriteit van de database te waarborgen.
Natuurlijk zijn er nog tig voorbeelden te bedenken van programmeerfouten waarbij dit absoluut niet opgaat. Maar dat was mijn punt niet, ik wilde alleen duidelijk maken dat je in sommige gevallen door constraints de schade van programmeerfouten kunt beperken.
De reden dat ik phpBB aanhaalde is dat daar allerlei synchronisatiescriptjes in zitten die de referentiele integriteit 'scriptmatig' moeten herstellen van data waartussen geen constraints bestaan. Als administrator van een groot bulletinboard gebaseerd op phpBB kan ik uit eigen hand vertellen hoe vervelend data inconsistency binnen je database is.
Klik hier om mij een DM te sturen • 3245 WP op ZW