[sql] veranderingen opslaan?

Pagina: 1
Acties:

  • mr.inno
  • Registratie: April 2003
  • Laatst online: 26-11 13:17
Nuttige velden van belangrijke tabellen.

members
id
name
adress_id
member_since
member_till
state

functions
id
member_id
role_id
group_id
function_since
function_till
state

groups
id
name
group_since
group_till
state


Nu zit ik dus met een probleempje. :9
Nu is het dus de bedoeling dat er bij word gehouden waneer een member zich heeft uitgeschreven. Dit word bewaart is member_til. Echter, wat als de member zich weer inschrijft. Ik wil dan wel kunnen zien dat het lid er een tijdje tussenuit is geweest. het zelfde geld voor groups die opgeheven worden en weer terug komen.

Nu zat ik te denken aan elke verandering op te slaan. Het is echter niet nodig om alle gegevens op te laan.

Heeft iemand dit ooit beter opgelost? of een idee over hoe dit het beste kan?

inno


  • Spockz
  • Registratie: Augustus 2003
  • Laatst online: 19-11 13:44

Spockz

Live and Let Live

Je zou twee aparte tabellen kunnen maken.

Een tabel voor de afmeldingen waarin de userid en de datum staat. En een tabel voor de aanmeldingen waar de userid en de datum instaat.

C'est le ton qui fait la musique. | Blog | @linkedin
R8 | 18-55 IS | 50mm 1.8 2 | 70-200 2.8 APO EX HSM | 85 1.8


  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Als je nou eens een "membership" tabel maakt?
Tabelletjes als in:
person
- id
- name
- address_id
- state

group
- id
- name
- state

membership
- id
- person_id
- group_id
- from
- to

Relaties van membership person_id -> person.id en group_id -> group.id
Een person heeft een membership en is member van een group.

[ Voor 3% gewijzigd door MTWZZ op 02-05-2007 14:08 ]

Nu met Land Rover Series 3 en Defender 90


  • Room42
  • Registratie: September 2001
  • Niet online
Je zou de members die terugkeren gewoon een nieuw ID kunnen geven. Of is het belangrijk dat hun originele status hersteld wordt als ze terugkeren? Die kun je dan overigens ook overnemen als ze weer joinen.

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


  • Motrax
  • Registratie: Februari 2004
  • Niet online

Motrax

Profileert

Aparte tabel met status van de member, inclusief een date_valid_from en date_valid_to. Eventueel nog een active flag als je dat niet voldoende vind.

Valid from vul je bijvoorbeeld 01.01.2000 in, en valid to vul je 01.01.9999 in. Wordt de member inactief, dan zet je de flag uit, en verander je valid to naar de datum dat de member stopt. 01.05.2007 bijvoorbeeld.
Wordt de member weer actief, nieuwe entry, nieuwe flag, met nieuwe valid from (02.05.2007) en nieuwe valid to.
Valid to kan je dan eventueel ook anders invullen dan 01.01.9999. Automatisch uitschrijven van een abbonnement bijvoorbeeld. Als je dan selecteert op datums en actieve entries, dan moet je daar wel rekening mee houden.

Je kan dan op de active flag selecteren om snel de actieve members te filteren, nadeel is dat je update en insert queries iets uitgebreider zijn. Voordeel is snelheid bij veel wisselende members of grote aantallen members.

Edit: wat MTWZZ ook in zijn tabel 'membership' heeft. Ik word traag :'(

[ Voor 3% gewijzigd door Motrax op 02-05-2007 14:15 ]

☻/
/▌
/ \ Analyseert | Modelleert | Valideert | Solliciteert | Generaliseert | Procrastineert | Epibreert |


  • mr.inno
  • Registratie: April 2003
  • Laatst online: 26-11 13:17
Toen ik Spocz's antwoord las moes ik denken aan een polymorphic tabel. Aangezien in en uit schrijvingen ook op groups moesten kunnen.

Toen las ik dat stukje van MTWZZ, maar dat leek me niks omdat ik ok een tabel functions had die group, roll en member aan elkaar hangt.

Daarna las ik Motrax's reply wat op dat van MTWZZ neer kwam (maar nu snapte ik het)

Dit is wat ik er van zou maken dan.
membership
id
active_from
active_till
state

Een "member" en een "group" krijgen dan een memberschip_id
Probleem hier bij is dat ik achteraf dus niet meer weet waar het memberschip bij hoorde.

Dus dan kom ik toch weer op een polymorphic tabel

membership
id
model_type
model_id
active_from
active_till
state

waar model_type "group" of "member" kan zijn. en model_id naar het id van een group of member verwijst.

kan dat zo ?

inno

Pagina: 1