database vraag
ozzie, in sqlite is dat resteicted: de query wil mislukken zodra je tegen fl in gaat. Voor mysql zijn die vast wel snel op te zoeken
"voor hetzelfde geld heb je helemaal geen fk nodig."
Wanneer is het gebruik van FK's dan aan te raden? De koppeling tussen klant en domein, daar zouden FK's toch al van pas komen?
@Wouter: "de query wil mislukken zodra je tegen fl in gaat" Wat is fl? :$
Toevoeging op 10/05/2013 01:55:57:
Ik lees trouwens dat InnoDB geen "full-text indexing" ondersteunt en MyISAM wel. Heeft dat met de doorzoekbaarheid van je database te maken?
Zodra 2 tabellen een relatie hebben zal ik altijd fk gebruiken.
enne fl, das gewoon fk maar dan snel getyped op een te kleine toetsenbord ;)
"enne fl, das gewoon fk maar dan snel getyped op een te kleine toetsenbord ;)"
Lol... vooruit dan ;)
Maar dan nogmaals:
"de query wil mislukken zodra je tegen fk in gaat."
Wat houdt dit in... zodra je tegen de fk in gaat??
zodra je een customer verwijderd die nog een domain heeft, zodra je een customer wijzigt en het domain niet en zodra je een domain linkt aan een niet bestaande customer.
Ozzie PHP op 10/05/2013 01:54:08:
Toevoeging op 10/05/2013 01:55:57:
Ik lees trouwens dat InnoDB geen "full-text indexing" ondersteunt en MyISAM wel. Heeft dat met de doorzoekbaarheid van je database te maken?
Toevoeging op 10/05/2013 01:55:57:
Ik lees trouwens dat InnoDB geen "full-text indexing" ondersteunt en MyISAM wel. Heeft dat met de doorzoekbaarheid van je database te maken?
Weet jij wat dit inhoudt? (Later toegevoegd, dus waars. had je deze gemist.)
Quote:
Begrijp ik het dan goed?
Waarschijnlijk wel, maar je legt het verkeerd uit. Elke tabel heeft een pk en als je 2 pks met elkaar verbind krijg je er een fk bij. Je kan een item uit de reference tabel (customers) niet vrrwijderen zodra die nog gelinkt is aan een domain. Behalve als je in de constraint de ON DELETE op CASCADE zet, dan zal het domain verwijderd worden die aan de customer is gelinkt.
Quote:
Weet jij wat dit inhoudt?
Als je de fulltext index gebruikt kun je heel snel en goed een dv doorzoeken. Op phptuts.nl staat er een hele goede tut over. Vanaf MySQL 5.6.4 heeft InnoDB support voor fulltext indexes
Wouter J op 10/05/2013 01:50:44:
ozzie, in sqlite is dat resteicted: de query wil mislukken zodra je tegen fl in gaat. Voor mysql zijn die vast wel snel op te zoeken
Het is al even geleden dat ik met SQLite heb gewerkt, en in de versie die ik toen gebruikte bestonden er nog FK's, maar
sqlite.org:
The ON DELETE and ON UPDATE action associated with each foreign key in an SQLite database is one of "NO ACTION", "RESTRICT", "SET NULL", "SET DEFAULT" or "CASCADE". If an action is not explicitly specified, it defaults to "NO ACTION".
Gewijzigd op 10/05/2013 09:52:31 door Ger van Steenderen
daar haal ik het ook vandaan.
Toevoeging op 10/05/2013 10:04:56:
Even, om Ozzie niet in verwarring te brengen, in MySQL is er geen verschil tussen RESTRICT en NO ACTION, en daar is RESTRICT de default.
Lol, Toevoeging op 10/05/2013 10:04:56:
Even, om Ozzie niet in verwarring te brengen, in MySQL is er geen verschil tussen RESTRICT en NO ACTION, en daar is RESTRICT de default.
Ik zal het eens testen. Misschien dat het restricted is als je fk in de CREATE TABLE query gebruikt en no action als je icm de constraints gebruikt (sqlite is wel zo'n taal die daar andere dingen zal doen...)
Je kan dat gewoon weglaten in de DDL, maar ik prefereer om mijn eigen benamingen aan een constraint mee te geven, en dan moet ik het wel meegeven.
Wouter J op 10/05/2013 08:53:22:
Waarschijnlijk wel, maar je legt het verkeerd uit. Elke tabel heeft een pk en als je 2 pks met elkaar verbind krijg je er een fk bij.
Quote:
Begrijp ik het dan goed?
Waarschijnlijk wel, maar je legt het verkeerd uit. Elke tabel heeft een pk en als je 2 pks met elkaar verbind krijg je er een fk bij.
Dan heb ik het misschien toch niet goed begrepen. In mijn eerdere voorbeeld met de domeinnamen tabel, als ik in die tabel "klant_id" toevoeg, dan dacht ik dat dat een FK was. Klopt dat of begrijp ik het verkeerd?
Ik dacht nu dat klant_id een FK is??
Wouter J op 10/05/2013 08:53:22:
Als je de fulltext index gebruikt kun je heel snel en goed een dv doorzoeken. Op phptuts.nl staat er een hele goede tut over. Vanaf MySQL 5.6.4 heeft InnoDB support voor fulltext indexes
Ah oké, vreemd... ik kan in Easy Apache nog niet upgraden naar versie 5.6 :(
Ozzie in jou laatste voorbeeld is ID een PK en klant_id de foreign key. klant_id is een primary key maar niet in dit tabelletje maar wel in de tabel klant. je moet het zo zien een foreign key betekent dat die waarde ergens in een andere tabel een primary key is.
Ah oké, dan had ik het wel goed begrepen. Thanks Reshad!