Voor archief een nieuwe tabel aanmaken?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Donny Wie weet

Donny Wie weet

15/12/2012 10:07:07
Quote Anchor link
Hoi allemaal,

Nou ben ik met een archief bezig maar zit ik met een vraag wat de beste optie is:

Kan je beter een record verplaatsen naar een tabel Archief, of kan je beter in je huidige tabel de active op 0 zetten? Ik heb nu gekozen (heb het al gedaan) om het over te zetten naar een aparte tabel, zodat je huidige helemaal fris blijft. Graag jullie mening!

Groeten
 
PHP hulp

PHP hulp

18/12/2024 18:16:23
 
Moose -

Moose -

15/12/2012 10:58:04
Quote Anchor link
active op 0. Stel je voor dat een record een foreign key heeft naar een andere tabel, dan moet je die ook aanpassen. En zo blijf je doorgaan
 
John D

John D

15/12/2012 11:05:05
Quote Anchor link
Not Moose op 15/12/2012 10:58:04:
active op 0. Stel je voor dat een record een foreign key heeft naar een andere tabel, dan moet je die ook aanpassen. En zo blijf je doorgaan
Nee, in een foreign key en dan waarschijnlijk parent-child relatie hoef je alleen maar een active in de parent op te nemen en op 0 te zetten. @Donny: Zolang je niet in de miljoenen records geraakt zou ik zeker geen archief tabellen aanmaken. Verder kan je na een jaar ofzo je tabel schonen, delete alles wat al langer dan een jaar op active=0 staat. Uiteraard tenzij het om financiele zaken gaat die je conform belastingregels 5 jaar moet bewaren.
Gewijzigd op 15/12/2012 11:31:23 door John D
 
Moose -

Moose -

15/12/2012 12:12:52
Quote Anchor link
John D op 15/12/2012 11:05:05:
Not Moose op 15/12/2012 10:58:04:
active op 0. Stel je voor dat een record een foreign key heeft naar een andere tabel, dan moet je die ook aanpassen. En zo blijf je doorgaan
Nee, in een foreign key en dan waarschijnlijk parent-child relatie hoef je alleen maar een active in de parent op te nemen en op 0 te zetten.


Kun je dit uitleggen?
 
LEDfan nvt

LEDfan nvt

15/12/2012 13:30:44
Quote Anchor link
Maar in de plaats van 0 zou ik true of false gebruiken, is dit niet beter, en leesbaarder?
 
John D

John D

15/12/2012 14:19:34
Quote Anchor link
@Not Moose: De active kan je toch altijd ophalen uit de belangrijkste tabel en op basis daarvan weet dat de onderliggende relaties hetzij op foreign key en/of parent child ook bij die active=0 horen. Een kwestie van gegevensmodellering. Overigens heb ik wel de indruk dat er tegenwoordig niet zoveel meer wordt gedaan aan gegevensmodellering, derde normaalvorm en dergelijke?
@Ledfan Leesbaarder??? In de tabellen hoeft dat echt leesbaar te zijn en 0 is drie karakters minder dan true/false en in beide gevallen moet je het vriendelijk tonen als actief/niet actief. Of kent MySQL boolean velden?? Nee toch??
Gewijzigd op 15/12/2012 14:20:51 door John D
 
Moose -

Moose -

15/12/2012 14:36:17
Quote Anchor link
Post onetomany Reacties (foreign key post_id)

Als jij een record in je Post tabel helemaal gaat overzetten naar een andere tabel Archief, moet je dus ook je Reacties tabel bijstellen.
 
Donny Wie weet

Donny Wie weet

15/12/2012 14:38:44
Quote Anchor link
wat nou als je geen tabel reacties gebruikt?
 
Moose -

Moose -

15/12/2012 14:46:30
Quote Anchor link
Als je tabel geen enkele manytomany of onetomany relatie heeft met een andere tabel, zou het in principe kunnen. Maar met het oog op de toekomst (misschien wil je wel ooit reactie's gaan toevoegen?) lijkt mij alsnog een extra kolom `active` beter. Niet moeilijk doen als het ook makkelijk kan.
 
Donny Wie weet

Donny Wie weet

15/12/2012 15:05:34
Quote Anchor link
Nee het is voor mn portfolio zeg maar. Omdat ik actiever bezig ben met PHP en SQL, wil ik de dingen die ik gemaakt heb online zetten. Wil daar geen reacties op binnen krijgen. En als ik wat weghaal drop ik het in het archief :)
 
John D

John D

15/12/2012 15:14:21
Quote Anchor link
Not Moose op 15/12/2012 14:46:30:
Als je tabel geen enkele manytomany of onetomany relatie heeft met een andere tabel, zou het in principe kunnen. Maar met het oog op de toekomst (misschien wil je wel ooit reactie's gaan toevoegen?) lijkt mij alsnog een extra kolom `active` beter. Niet moeilijk doen als het ook makkelijk kan.
@Moose: Onzin, je hebt niet veel begrepen van datamodellering. Je hoeft nooit een active=0/1 in andere tabellen toe te voegen als het bijvoorbeeld in de user of in het geval van Donny de portfolio tabel opgenomen is. Alles wat dan bij de user hoort zoals bijvoorbeeld reacties is terug te relateren (manytomany of onetomany maakt niet uit) aan die user. Daarom heten de datamodellen en databases tegenwoordig relationele modellen/databases. Wordt dat niet meer geleerd tegenwoordig?
@Danny: Tuurlijk archief tabellen maken. Lekker heen en weer kopieren. Je had je vraag net zo goed niet kunnen stellen hier. Misschien heb je 6 records in je portfolio tabel en 3 records in je archief-portfolio tabel?? Ik zou toch gaan voor active=0/1 als ik jou was.
Gewijzigd op 15/12/2012 15:23:16 door John D
 
Moose -

Moose -

15/12/2012 15:31:03
Quote Anchor link
John D op 15/12/2012 15:14:21:
Not Moose op 15/12/2012 14:46:30:
Als je tabel geen enkele manytomany of onetomany relatie heeft met een andere tabel, zou het in principe kunnen. Maar met het oog op de toekomst (misschien wil je wel ooit reactie's gaan toevoegen?) lijkt mij alsnog een extra kolom `active` beter. Niet moeilijk doen als het ook makkelijk kan.
@Moose: Onzin, je hebt niet veel begrepen van datamodellering. Je hoeft nooit een active=0/1 in andere tabellen toe te voegen als het bijvoorbeeld in de user of in het geval van Donny de portfolio tabel opgenomen is. Alles wat dan bij de user hoort zoals bijvoorbeeld reacties is terug te relateren (manytomany of onetomany maakt niet uit) aan die user. Daarom heten de datamodellen en databases tegenwoordig relationele modellen/databases. Wordt dat niet meer geleerd tegenwoordig?


Ik kan je niet goed volgen. Waarom zou je een active kolom willen toevoegen in meerdere tabellen?
 
John D

John D

15/12/2012 15:33:07
Quote Anchor link
@Moose zie: 15/12/2012 10:58:04
 
Moose -

Moose -

15/12/2012 15:39:24
Quote Anchor link
John D op 15/12/2012 15:33:07:
@Moose zie: 15/12/2012 10:58:04


Even een voorbeeldje:

tabel newspost
tabel likes
tabel reacties

Een newspost kan geliked worden door verschillende users, en kan verschillende reacties hebben. Stel, je wilt een newspost archiveren, maar natuurlijk niet je data verliezen zoals de likes en de reacties. Als je dan je record gaat verplaatsen naar een andere tabel krijg je zo'n opstapeling:

1. verplaatsen van record naar nieuwe tabel (id veranderd)
2. je koppeltabel met likes aanpassen (je wilt nu niet refereren naar newspost_id maar archief_id)
3. reacties tabel aanpassen, zie bovenstaande

Drie extra stappen, voor iets wat je ook gewoon simpel kunt oplossen door `active` op nul te zetten. Dan kun je bij je query daar rekening mee houden (WHERE `active` = 1)

Hoe jij dan bij een `active` kolom op meerdere tabellen komt, kan ik niet helemaal volgen.

Edit: laat maar ik zie het al. Ik zei foreign key vanaf je post tabel, ik bedoelde natuurlijk naar je post tabel toe :) Hoef je niet meteen zo aanvallend te doen
Gewijzigd op 15/12/2012 17:04:43 door Moose -
 
LEDfan nvt

LEDfan nvt

15/12/2012 19:38:07
Quote Anchor link
@John misschien heb je wel gelijk.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.