2 tabellen of 1 met blocked member_id's
Daniel van Seggelen
16/04/2017 16:35:02Hallo,
Scenario1
Ik heb een "leden" tabel
id|naam|
----------
1 | testnaam
2 | testnaam2
mensen kunnen andere leden zien en deze blokkeren. Als ze dit gedaan hebben, dan komen ze in een table genaamd "blocked"
member_id| blocked_id
------------------------
2 | 1
blocked_id verwijst dan naar id van de "leden" tabel
mysql queryy
SELECT * from blocked b, leden l WHERE b.blocked_id != l.id
Het lid krijg dat alle leden te zien behalve de geblokkeerde.
Ik wil dus een mysql query en zit te denken wat nu het snelst/beste is:
Scenario 2
Ik heb 1 table "leden" met een veld "blocked". In dat veld komt er een array die serialized word opgeslagen en unserialized weer word opgehaald.
wat is de beste query in dit geval om te zoeken in serialized arrays en is dit wel vertandig? sneller?
Scenario1
Ik heb een "leden" tabel
id|naam|
----------
1 | testnaam
2 | testnaam2
mensen kunnen andere leden zien en deze blokkeren. Als ze dit gedaan hebben, dan komen ze in een table genaamd "blocked"
member_id| blocked_id
------------------------
2 | 1
blocked_id verwijst dan naar id van de "leden" tabel
mysql queryy
SELECT * from blocked b, leden l WHERE b.blocked_id != l.id
Het lid krijg dat alle leden te zien behalve de geblokkeerde.
Ik wil dus een mysql query en zit te denken wat nu het snelst/beste is:
Scenario 2
Ik heb 1 table "leden" met een veld "blocked". In dat veld komt er een array die serialized word opgeslagen en unserialized weer word opgehaald.
wat is de beste query in dit geval om te zoeken in serialized arrays en is dit wel vertandig? sneller?
PHP hulp
15/11/2024 20:50:47Ben van Velzen
16/04/2017 16:56:18>> wat is de beste query in dit geval om te zoeken in serialized arrays en is dit wel vertandig? sneller?
Die bestaat niet, en wat je hier voorstelt is denormalisatie, iets dat alleen in zeer beperkte gevallen nuttig is, bijvoorbeeld wanneer je er nooit in hoeft te zoeken en kunt garanderen dat dat echt nooit nodig zal zijn. Gewoon netjes normaliseren en daar je queries op schrijven is bijna altijd de juiste weg.
Die bestaat niet, en wat je hier voorstelt is denormalisatie, iets dat alleen in zeer beperkte gevallen nuttig is, bijvoorbeeld wanneer je er nooit in hoeft te zoeken en kunt garanderen dat dat echt nooit nodig zal zijn. Gewoon netjes normaliseren en daar je queries op schrijven is bijna altijd de juiste weg.
Frank Nietbelangrijk
16/04/2017 23:30:15Je zou in deze situatie een leden tabel en een log tabel kunnen maken. In de log tabel bewaar je een log van belangrijke handelingen die verricht worden.
Leden:
- id
- name
- email
- locked (boolean)
Log:
- id
- when (datetime)
- who (userId)
- action (varchar) (vaste waardes bijv. LOCK USER en UNLOCK USER)
- note (varchar, nullable)
Leden:
- id
- name
- locked (boolean)
Log:
- id
- when (datetime)
- who (userId)
- action (varchar) (vaste waardes bijv. LOCK USER en UNLOCK USER)
- note (varchar, nullable)
Gewijzigd op 16/04/2017 23:33:32 door Frank Nietbelangrijk