Even een tabel structuur geven ter introductie
actions
id
title
description
action_permissions
id
actionID
groupID
Vraag 1: Insert
Ik wil een 5 tal "acties" toevoegen aan de actie tabel en meteen een bepaalde groep (met id 255) rechten geven voor deze acties in de action_permissions tabel hoe ik het nu doe:
Dat werkt wel (ook omdat niemand anders die database tabellen ooit kan gebruiken voor inserts) maar ik vermoed dat dit simpeler kan of in ieder geval veiliger mochten de tabellen in de toekomst toch een keer wel gebruikt worden?
Vraag 2: Delete
Nu zou ik ook graag die acties ongedaan kunnen maken maar hiervan heb ik echt geen idee wat ik momenteel heb (werkt niet maar geeft weer waar ik heen wil om te beginnen):
DELETE FROM `action_permissions` WHERE (SELECT id FROM actions a join action_permissions ap ON a.id = ap.actionID WHERE a.title LIKE 'NEWS%')
Bovenstaande werkt natuurlijk niet maar wat ik wil is dus eerst alle overeenkomstige rijen in action_permissions verwijderen die linken naar een rij in action waar de title 'NEWS%' is. Ik weet niet of zoiets uberhaupt mogelijk is in 1 query?
Waarom?
Ik ben een module systeem aan het opzetten en bezig met install en uninstall sql scripts, ik wil alles in sql regelen en liever niet met php er nog overheen gaan lopen.
Iemand dus alternatieven voor vraag 1 en een oplossing voor vraag 2? of een duw in de goede kant?
actions
id
title
description
action_permissions
id
actionID
groupID
Vraag 1: Insert
Ik wil een 5 tal "acties" toevoegen aan de actie tabel en meteen een bepaalde groep (met id 255) rechten geven voor deze acties in de action_permissions tabel hoe ik het nu doe:
SQL:
1
2
| INSERT INTO `actions` (`title`,`description`) VALUES (`NEWS_ADMIN_VIEW`, `User has acces to enter view the news admin section`); INSERT INTO `action_permissions` (`actionID`,`groupID`) VALUES ((SELECT id FROM post_permissions ORDER BY id DESC LIMIT 1), `255`); |
Dat werkt wel (ook omdat niemand anders die database tabellen ooit kan gebruiken voor inserts) maar ik vermoed dat dit simpeler kan of in ieder geval veiliger mochten de tabellen in de toekomst toch een keer wel gebruikt worden?
Vraag 2: Delete
Nu zou ik ook graag die acties ongedaan kunnen maken maar hiervan heb ik echt geen idee wat ik momenteel heb (werkt niet maar geeft weer waar ik heen wil om te beginnen):
DELETE FROM `action_permissions` WHERE (SELECT id FROM actions a join action_permissions ap ON a.id = ap.actionID WHERE a.title LIKE 'NEWS%')
Bovenstaande werkt natuurlijk niet maar wat ik wil is dus eerst alle overeenkomstige rijen in action_permissions verwijderen die linken naar een rij in action waar de title 'NEWS%' is. Ik weet niet of zoiets uberhaupt mogelijk is in 1 query?
Waarom?
Ik ben een module systeem aan het opzetten en bezig met install en uninstall sql scripts, ik wil alles in sql regelen en liever niet met php er nog overheen gaan lopen.
Iemand dus alternatieven voor vraag 1 en een oplossing voor vraag 2? of een duw in de goede kant?
Modelbouw - Alles over modelbouw, van RC tot diorama