abonnement Unibet Coolblue
  donderdag 5 april 2012 @ 12:16:19 #176
118585 Crutch
Filantroop || Taalzwengel
pi_109934346
Zoiets begrijp ik?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
productentabel
| id | productnaam   |
|  1 | Apparaat 1    |
|  2 | Apparaat 2    |
|  3 | Apparaat 3    |
|  4 | Accessoire 1  |
|  5 | Accessoire 2  |

Dus als accessoire 1 bij product 2 en 3 hoort 
en accessoire 2 bij product 1 en 2 dan zal het als volgt
moeten in een relatietabel?

productenrelatiestabel
| id | accessoire_id | gerelateerd_product_id |
|  1 |      4        |            2           |
|  2 |      4        |            3           |
|  3 |      5        |            1           |
|  4 |      5        |            2           |
Je moeder is een hamster
  donderdag 5 april 2012 @ 13:06:28 #177
75592 GlowMouse
l'état, c'est moi
pi_109936176
maar dan zonder id in de tweede tabel
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 5 april 2012 @ 13:09:14 #178
56176 Catch22-
Ben je Blind?!
pi_109936295
en je maakt van accessoire_id en product_id (niet gerelateerd_product_id) een composite key. Hiermee dwing je uniqueness af.
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
  donderdag 5 april 2012 @ 13:33:30 #179
118585 Crutch
Filantroop || Taalzwengel
pi_109937200
quote:
0s.gif Op donderdag 5 april 2012 13:06 schreef GlowMouse het volgende:
maar dan zonder id in de tweede tabel
quote:
11s.gif Op donderdag 5 april 2012 13:09 schreef Catch22- het volgende:
en je maakt van accessoire_id en product_id (niet gerelateerd_product_id) een composite key. Hiermee dwing je uniqueness af.
Dus 'id' is niet verplicht in een tabel? Nou mooi, kan die weg. ;)

En wat Catch22- zegt, bedoel je daarmee dat ik een kolom moet toevoegen waarin ik aangeef bij welk product(id) deze niet hoort?
Wat is daar het praktisch nut van?
Je moeder is een hamster
pi_109938236
hij bedoelt dat het woordje "gerelateerd" een beetje onzinnige toevoeging is aan de kolom-naam. Beter weglaten.

En als tweede bedoelt hij, dat je een key ook over meerdere kolommen kan defineren. Daarom is de kolom ID overbodig. Aangezien de combinatie [accessoire_id + product_id] sowieso al uniek is.
  donderdag 5 april 2012 @ 13:57:14 #181
56176 Catch22-
Ben je Blind?!
pi_109938334
quote:
0s.gif Op donderdag 5 april 2012 13:33 schreef Crutch het volgende:

[..]

[..]

Dus 'id' is niet verplicht in een tabel? Nou mooi, kan die weg. ;)

En wat Catch22- zegt, bedoel je daarmee dat ik een kolom moet toevoegen waarin ik aangeef bij welk product(id) deze niet hoort?
Wat is daar het praktisch nut van?
Met een koppeltabel geef je aan welke 2 entiteiten bijelkaar horen. Deze combinatie is uniek. Dit stel je in door een composite key te gebruiken. Hierdoor heeft die rij niet nog een eigen id nodig, want zijn unique identifier is de composite key :)

en in een koppeltabel zijn beide id's "gerelateerd_", dus dat moet je gewoon weglaten.
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
  donderdag 5 april 2012 @ 14:03:12 #182
118585 Crutch
Filantroop || Taalzwengel
pi_109938578
quote:
14s.gif Op donderdag 5 april 2012 13:55 schreef KomtTijd... het volgende:
hij bedoelt dat het woordje "gerelateerd" een beetje onzinnige toevoeging is aan de kolom-naam. Beter weglaten.

En als tweede bedoelt hij, dat je een key ook over meerdere kolommen kan defineren. Daarom is de kolom ID overbodig. Aangezien de combinatie [accessoire_id + product_id] sowieso al uniek is.
Oh, lol. Die kolomnamen zijn hier puur ter illustratie.
Je moeder is een hamster
  donderdag 5 april 2012 @ 14:05:56 #183
118585 Crutch
Filantroop || Taalzwengel
pi_109938680
Maar hoe werkt zo'n composite key?
Kan iemand mij een voorbeeld geven?
Je moeder is een hamster
pi_109959785
quote:
0s.gif Op donderdag 5 april 2012 14:05 schreef Crutch het volgende:
Maar hoe werkt zo'n composite key?
Kan iemand mij een voorbeeld geven?
Je hebt 2 hoofdtabellen:
Users met info en id
Rights met naam van rechten etc en id

UserRights met user_id en rights_id

Je kunt dus voor 1 user meerdere rechten toekennen en andersom.
Zoiets dus:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT 
Users.*, Rights.name
FROM
Users
INNER JOIN
UserRights
ON
UserRights.user_id = Users.id
INNER JOIN
Rights
ON
Rights.id = UserRights.right_id
WHERE
Users.id = 1
pi_109960646
quote:
0s.gif Op donderdag 5 april 2012 14:05 schreef Crutch het volgende:
Maar hoe werkt zo'n composite key?
Kan iemand mij een voorbeeld geven?
1
2
3
4
5
6
CREATE TABLE `user_rights` (
      `user_id` INT NOT NULL
    , `right_id` INT NOT NULL
    , PRIMARY KEY(`user_id`, `right_id`)
    , INDEX (`right_id`)
);
Zo ongeveer. De combinatie van user_id en right_id is uniek, en de primary key werkt tevens als index op user_id (voor als je alle rechten van een user wilt zoeken). De index op right_id is handig als je wilt weten welke users een bepaald right hebben. (Eigenlijk wil je in zo'n koppeltabel altijd beide kanten op kunnen zoeken en daarbij gebruik maken van een index.)
  donderdag 5 april 2012 @ 22:16:44 #186
118585 Crutch
Filantroop || Taalzwengel
pi_109960824
^O^ Tof!
Ik ga er morgen even mee klooien. Beiden bedankt. :)
Je moeder is een hamster
  FOK!-Schrikkelbaas donderdag 5 april 2012 @ 23:07:50 #187
1972 Swetsenegger
Egocentrische Narcist
pi_109963704
Ik heb weer eens een query vraagje.

Ik heb een nested set model en nu wil ik van een bepaald groepjes nodes de parent naam achterhalen

1
2
3
4
5
6
SELECT parent.name AS parentName, products.*
FROM nested_menu AS node, nested_menu AS parent, produkten AS products
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.menu_id = products.product_menu
AND products.highlight=1
GROUP BY product_id ORDER BY parentName, first_price ASC

Dit werkt bijna Het gaat mis bij nodes die 2 niveaus diep zitten.

aan deze query moet een where worden toegevoegd:
1AND node.lft > parent.lft IF product_id <van deze rij> != product_id <vorige rij>

is dit uberhaupt mogelijk?
pi_109964120
quote:
5s.gif Op donderdag 5 april 2012 23:07 schreef Swetsenegger het volgende:
Ik heb weer eens een query vraagje.

Ik heb een nested set model en nu wil ik van een bepaald groepjes nodes de parent naam achterhalen
[ code verwijderd ]

Dit werkt bijna Het gaat mis bij nodes die 2 niveaus diep zitten.

aan deze query moet een where worden toegevoegd:
[ code verwijderd ]

is dit uberhaupt mogelijk?
Je kunt hier even kijken (al lijkt je query er al een beetje op)
http://stackoverflow.com/(...)e-children-of-a-node
Eerlijk gezegd zet ik nooit alles in 1 grote query vaak maakt dit dingen alleen maar langzamer dan bijvoorbeeld een paar losse :P (niet altijd hoor).
pi_109964526
quote:
5s.gif Op donderdag 5 april 2012 23:07 schreef Swetsenegger het volgende:
Ik heb weer eens een query vraagje.

Ik heb een nested set model en nu wil ik van een bepaald groepjes nodes de parent naam achterhalen
[ code verwijderd ]

Dit werkt bijna Het gaat mis bij nodes die 2 niveaus diep zitten.

aan deze query moet een where worden toegevoegd:
[ code verwijderd ]

is dit uberhaupt mogelijk?
Is het niet makkelijker om te stellen dat node.id != parent.id ? Volgens mij ben je er al als je dat toeveoegt aan je query.
pi_109964667
quote:
0s.gif Op donderdag 5 april 2012 23:16 schreef totalvamp het volgende:

[..]

Je kunt hier even kijken (al lijkt je query er al een beetje op)
http://stackoverflow.com/(...)e-children-of-a-node
Eerlijk gezegd zet ik nooit alles in 1 grote query vaak maakt dit dingen alleen maar langzamer dan bijvoorbeeld een paar losse :P (niet altijd hoor).
Als je de indexen goed hebt, kun je behoorlijk grote query's nog snel uitvoeren. Meerdere query's maken kan ook, maar dat vereist weer extra logica in PHP en die kost ook tijd.
  FOK!-Schrikkelbaas vrijdag 6 april 2012 @ 20:38:24 #191
1972 Swetsenegger
Egocentrische Narcist
pi_109997352
quote:
0s.gif Op donderdag 5 april 2012 23:25 schreef Light het volgende:

[..]

Is het niet makkelijker om te stellen dat node.id != parent.id ? Volgens mij ben je er al als je dat toeveoegt aan je query.
Nee, zelfde probleem... als je maar 1 niveau diep bent klopt dat namelijk wel.
pi_110002233
quote:
0s.gif Op vrijdag 6 april 2012 20:38 schreef Swetsenegger het volgende:

[..]

Nee, zelfde probleem... als je maar 1 niveau diep bent klopt dat namelijk wel.
Hmm... 't klinkt wel als een leuk probleem :)
  FOK!-Schrikkelbaas vrijdag 6 april 2012 @ 22:05:28 #193
1972 Swetsenegger
Egocentrische Narcist
pi_110002421
quote:
0s.gif Op vrijdag 6 april 2012 22:02 schreef Light het volgende:

[..]

Hmm... 't klinkt wel als een leuk probleem :)
:D Ik heb het maar opgelost door het hoogste niveau een tag te geven en op die tag te filteren.
Niet mooi zeker niet binnen de elegante nested set oplossing, wel effectief.
pi_110002800
quote:
7s.gif Op vrijdag 6 april 2012 22:05 schreef Swetsenegger het volgende:

[..]

:D Ik heb het maar opgelost door het hoogste niveau een tag te geven en op die tag te filteren.
Niet mooi zeker niet binnen de elegante nested set oplossing, wel effectief.
Da's ook een optie natuurlijk. Maar ik wil wel proberen een nettere oplossing te vinden. Moet ik alleen eerst die tabelstructuur voor mezelf helder krijgen.
  vrijdag 6 april 2012 @ 22:32:47 #195
75592 GlowMouse
l'état, c'est moi
pi_110004052
quote:
7s.gif Op vrijdag 6 april 2012 22:05 schreef Swetsenegger het volgende:

[..]

:D Ik heb het maar opgelost door het hoogste niveau een tag te geven en op die tag te filteren.
Niet mooi zeker niet binnen de elegante nested set oplossing, wel effectief.
http://crisp.tweakblogs.n(...)-only-one-query.html
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  FOK!-Schrikkelbaas vrijdag 6 april 2012 @ 22:39:41 #196
1972 Swetsenegger
Egocentrische Narcist
pi_110004456
quote:
Ow maar mijn menu tree opbouwen doe ik ook met 1 query.

1
2
3
4
5
6
SELECT parent.".$menuName." AS parentname, node.menu_id, node.".$menuName." AS name, node.lft, node.rgt, (
       COUNT( parent.".$menuName." ) -1) AS depth
       FROM nested_menu AS node, nested_menu AS parent
       WHERE node.lft BETWEEN parent.lft AND parent.rgt
       GROUP BY node.menu_id
       ORDER BY node.lft
  vrijdag 6 april 2012 @ 22:43:15 #197
75592 GlowMouse
l'état, c'est moi
pi_110004628
Jouw query is lelijker omdat hij niet via indices gesorteerd kan worden.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  FOK!-Schrikkelbaas vrijdag 6 april 2012 @ 22:52:35 #198
1972 Swetsenegger
Egocentrische Narcist
pi_110005145
quote:
0s.gif Op vrijdag 6 april 2012 22:43 schreef GlowMouse het volgende:
Jouw query is lelijker omdat hij niet via indices gesorteerd kan worden.
Ow vast, maar ik heb nu een menu tree waar je zonder problemen items tussen kan voegen, kan deleten, op kan schuiven, etc.

Ideaal om klanten via een cmsje zelf een menu te laten bouwen. En ja... daar komen misschien 40 records in. Deze query draait in 15.2ms voor het volledige menu.
  zaterdag 7 april 2012 @ 11:42:21 #199
267547 smegmanus
FOK! ambassadeur
pi_110017732
Ik wil een path veranderen (voor een applicatie die foto's weg schrijft naar een bepaalde dir) en gebruik het volgende command:

1UPDATE image SET path = UPDATE(path, d:/dir/dir2,g:/dir/dir2); 

Het werkt echter niet, wat doe ik verkeerd? :@
Op donderdag 15 januari 2015 19:01 schreef Maanvis het volgende:
smegmanus is de as van het kwaad. een verbrand stukje Hitler.
  zaterdag 7 april 2012 @ 11:44:54 #200
299167 stefanhaan
Bloeddorstige wasbeer
pi_110017799
quote:
7s.gif Op zaterdag 7 april 2012 11:42 schreef smegmanus het volgende:
Ik wil een path veranderen (voor een applicatie die foto's weg schrijft naar een bepaalde dir) en gebruik het volgende command:
[ code verwijderd ]

Het werkt echter niet, wat doe ik verkeerd? :@
1
2
3
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

Dus moet het worden

1
2
3
UPDATE image
SET path = "d:/dir/dir2"
WHERE id=xx

Bv. of gebruik je mysql procedures / functions?
It was an opportunity to honour our memories and to make room for new ones
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')