Klopt, ik doelde dus nie op fragmentatie maar op fillfactorquote:Op woensdag 18 februari 2015 20:19 schreef Monolith het volgende:
[..]
Nee, dat is een ander concept, fragmentatie heeft te maken met logische versus fysieke ordening, waardoor het lezen van de schijf trager gaat.
Zie bv:
https://msdn.microsoft.com/en-us/library/ms189858.aspx
Tinyint(1) = 0 t/m 9quote:Op woensdag 18 februari 2015 21:18 schreef Monolith het volgende:
Als het een Tinyint(1) is, dan klopt dat ook gewoon.
Volgens mij moet je even opzoeken wat die 1 betekent.quote:Op woensdag 18 februari 2015 21:19 schreef mstx het volgende:
[..]
Tinyint(1) = 0 t/m 9
Boolean = true/false
Hoe is dat het zelfde?
die 1 betekend 1 teken lezen toch?quote:Op woensdag 18 februari 2015 21:21 schreef Monolith het volgende:
[..]
Volgens mij moet je even opzoeken wat die 1 betekent.
Nee, tinyint(1) is een integer van 1 bit, dus een boolean.quote:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.htmlquote:Op woensdag 18 februari 2015 21:22 schreef wipes66 het volgende:
[..]
die 1 betekend 1 teken lezen toch?
mysql heeft geen echte boolean, dus 'boolean' is gewoon een allias voor tinyint(1) wat 8-bit is.quote:Op woensdag 18 februari 2015 21:22 schreef KomtTijd... het volgende:
[..]
Nee, tinyint(1) is een integer van 1 bit, dus een boolean.
Als ik het verander naar tinyint(3) zegt hij nog steeds dat het een boolean is.quote:Op woensdag 18 februari 2015 21:22 schreef KomtTijd... het volgende:
[..]
Nee, tinyint(1) is een integer van 1 bit, dus een boolean.
dat heb ik fout. Maar een boolean wordt wel altijd als tinyint(1) opgeslagen. Dus zo gek is het niet dat Doctrine die aanname doet.
Op zich wel, maar omdat doctrine types mapt tussen PHP en MySQL stelt het tinyint gelijk aan boolean kennelijk. Zie ook:quote:Op woensdag 18 februari 2015 21:31 schreef mstx het volgende:
[..]
Als ik het verander naar tinyint(3) zegt hij nog steeds dat het een boolean is.
Ik wil gewoon het aantal versnellingen van een auto opslaan, een tinyint leek me daar het juiste type voor.
Waarom maak je je uberhaupt druk om het database format? Laat dat lekker aan doctrine over. Die zal er waarschijnlijk een int van maken. Mocht je dat nog willen micro-optimaliseren naar een tinyint kun je dat doen na uitrol van je applicatie.quote:Op woensdag 18 februari 2015 21:31 schreef mstx het volgende:
[..]
Als ik het verander naar tinyint(3) zegt hij nog steeds dat het een boolean is.
Ik wil gewoon het aantal versnellingen van een auto opslaan, een tinyint leek me daar het juiste type voor.
Omdat ik die database al had en ik altijd de juiste datatypes probeer te gebruiken. En dan is het gewoon een beetje vreemd dat een auto ineens "true" versnellingen heeft terwijl er "6" in de database staat.quote:Op woensdag 18 februari 2015 21:37 schreef KomtTijd... het volgende:
[..]
Waarom maak je je uberhaupt druk om het database format? Laat dat lekker aan doctrine over. Die zal er waarschijnlijk een int van maken. Mocht je dat nog willen micro-optimaliseren naar een tinyint kun je dat doen na uitrol van je applicatie.
Dat krijg je met dat soort systemen. PostgreSQL heeft geen tinyint en sqllite weer wel dus mappen ze inderdaad een tinyint naar een boolean.quote:Op woensdag 18 februari 2015 21:36 schreef Monolith het volgende:
[..]
Op zich wel, maar omdat doctrine types mapt tussen PHP en MySQL stelt het tinyint gelijk aan boolean kennelijk. Zie ook:
http://stackoverflow.com/(...)ype-in-entity-column
ENUM ('TRUE','FALSE')quote:Op woensdag 18 februari 2015 21:19 schreef mstx het volgende:
[..]
Tinyint(1) = 0 t/m 9
Boolean = true/false
Hoe is dat het zelfde?
Je kunt je entities toch wel handmatig aanpassen naar het goeie format lijkt me?quote:Op woensdag 18 februari 2015 21:45 schreef mstx het volgende:
[..]
Omdat ik die database al had en ik altijd de juiste datatypes probeer te gebruiken. En dan is het gewoon een beetje vreemd dat een auto ineens "true" versnellingen heeft terwijl er "6" in de database staat.
Daar is een boolean inderdaad niet voor bedoeld en het levert in SQL en veel andere talen doorgaans wel vrij onverwachte informatie op als je er logische operaties mee gaat uitvoeren.quote:Op donderdag 19 februari 2015 08:51 schreef raptorix het volgende:
Alles kan, zo had ik een collega die het een goed idee vond om een nullable bool te gebruiken, en op die manier tristate te kunnen opslaan, nog nooit zoveel gezeik gehad met exports
Ja klopt, er moest een sync proces via een automatisch tool naar Oracle worden gezet, in die tooling kon geen cast worden gedaan waardoor enige mogelijkheid was om al die velden te gaan omzetten, dit leverde ook weer allemaal gezeik op omdat een boolean in die tijd formeel geen null kon zijn in SQL Server, heeft echt weken gekost om dat goed gefixed te krijgen.quote:Op donderdag 19 februari 2015 09:36 schreef Monolith het volgende:
[..]
Daar is een boolean inderdaad niet voor bedoeld en het levert in SQL en veel andere talen doorgaans wel vrij onverwachte informatie op als je er logische operaties mee gaat uitvoeren.
1 2 3 4 5 | <?php SELECT * FROM bestellen INNER JOIN users ON ( bestellen.userdienodigheeft = users.IdUser ) ?> |
1 2 3 4 5 6 7 | <?php SELECT * FROM bestellen INNER JOIN users ON ( bestellen.userdienodigheeft = users.IdUser ) INNER JOIN users ON ( bestellen.userdiebesteldheeft = users.IdUser ) ?> |
Je doet twee Inner Joins op dezelfde tabel, volgens mij kun je er dan beter twee aparte queries van maken.quote:Op woensdag 25 februari 2015 20:35 schreef wobbel het volgende:
Help, ik zit in de knoei met een SQL query in PHP....
Ik heb een tabel met daarin hardware die besteld moet worden, zie onderstaande tabel:
tabel "bestellen"
volgende velden:
product
userdienodigheeft
userdiebesteldheeft
De user velden zijn ID's die ik vanuit een andere tabel "users" kan joinen
tabel "users"
iduser
naam
Als ik een JOIN die op de volgende manier kan dat prima als ik maar 1 user wil ophalen, maar hoe doe ik dat als ik de gegevens van 2 users wil ophalen? De bestelling kan nodig zijn voor user 1000 en besteld zijn door user 1028 namelijk
Huidige query waarmee ik maar 1 user ophaal
[ code verwijderd ]
Mijn idee, welke uiteraard niet werkt was het volgt, maar hoe moet het wel??
[ code verwijderd ]
In beide gevallen krijg ik maar 1 veld terug, dat is 'naam' maar ik wil eigenlijk naamNodig en naamBesteld ofzo krijgen
Dat met die keywords/bijnamen begrijp ik, maar niet hoe ik aan de 2 namen van de users kom. Ik doe inderdaad twee joins op 1 tabel maar dat werkt uiteraard niet...quote:Op woensdag 25 februari 2015 20:40 schreef robin007bond het volgende:
[..]
Je doet twee Inner Joins op dezelfde tabel, volgens mij kun je er dan beter twee aparte queries van maken.
Maar je kunt het keyword 'as' gebruiken om bijnamen te geven aan kolomnamen.
Sorry, maar dan heb je je database waarschijnlijk niet optimaal ingericht.quote:Op woensdag 25 februari 2015 21:02 schreef wobbel het volgende:
[..]
Dat met die keywords/bijnamen begrijp ik, maar niet hoe ik aan de 2 namen van de users kom. Ik doe inderdaad twee joins op 1 tabel maar dat werkt uiteraard niet...
Ik zou een 2e query kunnen doen, maar dan zou ik dat voor élk resultaat moeten doen. Bij een pagina met 20 resultaten heb ik dan 21 queries (1 querie voor de resultaten inclusief join voor de 1e naam, en 20 voor de andere namen)
Je hebt mogelijk kolommen met eenzelfde naam zodat in het resultaat er één (unieke naam) overblijft.quote:Op woensdag 25 februari 2015 21:02 schreef wobbel het volgende:
[..]
Dat met die keywords/bijnamen begrijp ik, maar niet hoe ik aan de 2 namen van de users kom. Ik doe inderdaad twee joins op 1 tabel maar dat werkt uiteraard niet...
Ik zou een 2e query kunnen doen, maar dan zou ik dat voor élk resultaat moeten doen. Bij een pagina met 20 resultaten heb ik dan 21 queries (1 querie voor de resultaten inclusief join voor de 1e naam, en 20 voor de andere namen)
1 2 3 4 5 6 7 8 | SELECT b.*, u1.idUser AS idUser1, u1.naam AS naam1 u2.idUser AS idUser2, u2.naam AS naam2 FROM bestellen AS b INNER JOIN users AS u1 ON b.userdienodigheeft = u1.IdUser INNER JOIN users AS u2 ON b.userdiebesteldheeft = u2.idUser |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |