wegschrijven in tabel
Ik heb 100000 carriers verdeeld over 5 tabellen. Hier onder staat een stukje script voor het wegschrijven ervan.
Maar dit is niet goed. Het is de bedoeling dat de nummers 1 t/m 20000 in tabel carrier1 komen en de nummers 20001 t/m 40000 in tabel carrier2 komen enz enz.
Hoe kan ik dat in dit onderstaande script opvangen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if(isset($_POST['submit']))
{
$carrier_id=$_POST['id'];
$aantal = $_POST['aantal'];
$rest = substr ($carrier_id, 1);
mysql_query("UPDATE carrier1 SET gescand = ".(1)." WHERE carrier_id = $rest")or die(mysql_error());
}else{
?>
if(isset($_POST['submit']))
{
$carrier_id=$_POST['id'];
$aantal = $_POST['aantal'];
$rest = substr ($carrier_id, 1);
mysql_query("UPDATE carrier1 SET gescand = ".(1)." WHERE carrier_id = $rest")or die(mysql_error());
}else{
?>
Quote:
Dat is inderdaad mooi omschreven, dat is inderdaad een groot probleem.Mijn probleem is alsvolgt:
Ik heb 100000 carriers verdeeld over 5 tabellen.
Ik heb 100000 carriers verdeeld over 5 tabellen.
Gelukkig is het ook eenvoudig op te lossen: Ze alle carriers in 1 tabel.
Ga normaliseren, dat is de basis voor een goede database. Jouw huidige opzet zal voor heel veel problemen zorgen en nooit goed kunnen werken. En voordat je gaat roepen dat 100000 records wel heel erg veel is, een miljoen records meer of minder mag voor een database niet uitmaken. Ook in MySQL maakt dat niet uit, daar loop je altijd het risico dat de database jouw data naar de bliksem helpt. Dat is een functionaliteit van de database, staat zelfs in de handleiding beschreven.
Staat in de mysql handleiding beschreven dat het naar de bliksem gaat Frank? Nu moet je niet overdrijven hoor...
Crispijn schreef op 11.12.2007 01:11:
Dat staat er absoluut. MySQL biedt de service dat het delen van je data weggooit als je te veel hebt meegegeven zonder je hier überhaupt mee lastig te vallen. Wat een lieve database! Dat is net als dat je bij de bakker een broodje voor 2 euro koopt, afrekent met 50 euro en hij dan je resterende 48 euro zonder het te melden even in de afvalbak gooit. Dan zit je tenminste niet met al dat kleingeld :)Staat in de mysql handleiding beschreven dat het naar de bliksem gaat Frank? Nu moet je niet overdrijven hoor...
Broodje aap verhaal dus ;)
Crispijn schreef op 11.12.2007 01:11:
Staat in de mysql handleiding beschreven dat het naar de bliksem gaat Frank? Nu moet je niet overdrijven hoor...
En dan een stukje uit de handleiding over char's en varchar's:
Quote:
Kortom, wanneer je géén STRICT-mode gebruikt (en dat is helaas zelden het geval), zal MySQL keurig een deel van de data weggooien wanneer jij/de gebruiker teveel data in een veld probeert te stoppen.If strict SQL mode is not enabled and you assign a value to a CHAR or VARCHAR column that exceeds the column's maximum length, the value is truncated to fit and a warning is generated. For truncation of non-space characters, you can cause an error to occur (rather than a warning) and suppress insertion of the value by using strict SQL mode.
De meeste problemen met MySQL zijn helemaal geen bugs, maar zijn functionaliteit van MySQL en zijn dan ook keurig beschreven. Dat jouw data naar de bliksem gaat, dat is jouw probleem en niet het probleem van jouw zogenaamde 'databases'.