URL Shortener algoritme?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end developer

Functie Jij komt te werken in een team van 5 developers. het product is continue in beweging. Nieuwe en bestaande klanten vragen om vaak nieuwe features. Hierin ben jij zeer belangrijk om te zorgen dat de functionaliteiten goed opgezet worden op technisch vlak. Designs krijg je aangeleverd van een externe partij zodat jij je primair kan focussen op de techniek! Je hebt daarbij alle vrijheid om je eigen creativiteit toe te passen en mee te denken over de gebruikte technieken. Het gezamenlijke doel is een product dat functioneel zeer gebruiksvriendelijk is en het bedrijfsproces van de gebruikers versneld en kwalitatief

Bekijk vacature »

Developer Angular & Kotlin

Dit ga je doen Het (door)ontwikkelen van mobiele apps en webapplicaties; Het opstellen van technisch ontwerp en het bespreken van ontwerpen met de software architect; Het uitvoeren van werkzaamheden op het gebied van technisch testen; Het in de gaten houden van nieuwe ontwikkelingen op jouw vakgebied en het adviseren van de organisatie hierover. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze organisatie is van oorsprong een familiebedrijf, er wordt hard gewerkt, er heerst een no nonsense en doeners mentaliteit, een informele sfeer en er is een mix van

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden je HBO ICT Informatica diploma in ontvangst mogen nemen? Of heb je een aantal jaar ervaring als Software Developer en ben je klaar voor een nieuw hoofdstuk in jouw carrière? Voor een gewaardeerde werkgever in de regio van Goirle zijn wij op zoek naar een junior/medior Back-end Developer met affiniteit met MS Acess. Samen met een vooruitstrevend team ben je verantwoordelijk voor het ontwikkelen van maatwerk software voor hun klanten. Je hebt kennis of ervaring van SQL en affiniteit met MS Acess. Je bent klantvriendelijk en flexibel ingesteld en vindt het leuk om klanten te

Bekijk vacature »

Front-end Developer

Dit ga je doen Het onderhouden, ontwikkelen en testen van front-end software van diverse klant- en medewerkersapplicaties; Het ontwikkelen van maatwerk front-end oplossingen in Vue.js en participeren in een scrumteam; Mede-verantwoordelijk voor het begeleiden en coachen van drie junior front-end developers; Verantwoordelijk voor code-reviews en het opstellen van de juiste documentatie zoals userstories en API ontwerp; Participeren in diverse projecten t.b.v. optimalisatie van diverse applicaties; Het opzetten van API koppelingen met externe applicaties. Hier ga je werken Betreffende organisatie is gevestigd in de regio van Swifterbant en is al ruim 20 jaar lang bedreven in het ontwikkelen en aanbieden van

Bekijk vacature »

Software Developer

Functie omschrijving Heb jij affiniteit met ICT en een WO diploma in de pocket? Dan ben je hier aan het juiste adres. Voor een opdrachtgever in Amsterdam zijn wij op zoek naar kandidaten die (enige) ervaring hebben met Java, Javascript, C of C++. Je zal door middel van trainingen worden opgeleid tot een volwaardige Software Developer. Er wordt tijdens de training natuurlijk veel aandacht besteedt aan de vaktechnische aspecten, maar er gaat ook veel aandacht uit naar jouw persoonlijke ontwikkeling. Bedrijfsprofiel Bij deze opdrachtgever in de omgeving van Amsterdam zoeken ze meerdere enthousiaste kandidaten die hun carrière willen starten met

Bekijk vacature »

PHP ontwikkelaar

Functie Met een complex en uitgebreid e-commerce platform, een eigen PIM-systeem en eigen scan applicatie – krijg jij dagelijks te zien hoe jouw werk gebruikt wordt door miljoenen gebruikers. En we staan qua development pas in de startblokken, aangezien er nog meerdere projecten op de plank liggen te wachten! Ons huidige development team bestaat uit 8 programmeurs. Er wordt dagelijks gereflecteerd op geschreven code, Scrum taken en kennisdelen onderling is een must. Onze voertaal binnen ons team is Engels, dit omdat wij twee internationale collega’s hebben. Ons huidige “IT Landschap” bestaat voornamelijk uit allerlei losse onderdelen die individueel, maar ook

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij toe aan een nieuwe uitdaging en werk je graag en goed in C++ en C#? Dan zijn we op zoek naar jou! Dit bedrijf is dé specialist op het gebied van automatiseringssoftware voor een specifieke branche en ze zijn per direct op zoek naar versterking in hun development team. Wat jij gaat doen binnen jouw rol als C++ ontwikkelaar; Je vertaalt de wensen van gebruikers naar een functioneel ontwerp. Je houdt je bezig met het ontwerpen, programmeren en testen van product aanpassingen. Je gaat nieuwe product releases implementeren in de projectteams. Je gaat de effecten van nieuwe

Bekijk vacature »

Java Developer

Dit ga je doen Als Java Developer ben je verantwoordelijk voor: Het ontwikkelen van nieuwe en bestaande webservices; Het uitbreiden van functionaliteiten binnen de producten- en dienstenportefeuille; Het werken aan gegevensuitwisseling met bijvoorbeeld SOAP; Testen van frameworks met gebruik van UNIT en Selenium. Hier ga je werken De organisatie waar je komt te werken is een semi-overheidsinstelling, gesitueerd in Utrecht en zorgt voor een goede samenwerking tussen verschillende overheidsinstanties. Het is een familiaire club die gaat voor kwaliteit en langdurige relaties. Zo zorgen zij ervoor dat er op grote schaal vertrouwelijke informatie tussen verschillende overheidsinstellingen wordt uitgewisseld. Hun werk zorgt

Bekijk vacature »

.NET Developer

Dit ga je doen Programmeren in .NET, Javascript & C# en ontwikkelen in Web Services, Windows Services en MS SQL Server; Zelfstandig verbanden maken Analyseren, testen, bugs fixen, reviewen en rapporteren; Juiste prioriteiten stellen en verantwoordelijkheid nemen; Op architectuur niveau meedenken; Af en toe klanten bezoeken. Hier ga je werken Voor onze relatie zijn wij opzoek naar een .NET ontwikkelaar met minimaal 3 jaar werkervaring. Je komt te werken in een groeiend bedrijf met betrokken collega's die zorgen voor een familiaire sfeer op de werkvloer. Als .NET ontwikkelaar word jij vanaf de eerste werkdag betrokken bij het gehele ontwikkelproces. De

Bekijk vacature »

Back-end Programmeur

Functieomschrijving Heb jij kort geleden je HBO ICT in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een ambitieuze werkgever in de regio van Breda zijn wij op zoek naar een Back-end programmeur met affiniteit met C#.NET, SQL en MS Access. Samen met team bestaand uit ware ICT professionals ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Belangrijk is dat je kennis of ervaring hebt van C#.NET en SQL. Je toont een flexibele en sociale houding naar klanten toe. Je denkt in nieuwe mogelijkheden & gaat graag de uitdaging aan. Bedrijfsprofiel De

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

Lead developer (PHP, Symfony, DDD)

Functie Als Lead developer zorg je ervoor dat het team (bestaande uit zowel junior als ervaren developers) in staat is om de kwaliteit van de software (en code) verder te verhogen. In samenwerking met het team, de product owner en de andere lead developers zet je technische lijnen uit en bepaal je de prioriteiten per sprint. Lijkt het jou interessant om complexe problemen op te lossen en bijvoorbeeld een nieuwe applicatiestructuur in Symfony op te zetten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en

Bekijk vacature »

Software developer

Functieomschrijving Voor een gewaardeerde werkgever in de regio van Middelburg zijn wij op zoek naar een ambitieuze PHP/Symfony Developer. Een enthousiast persoon die het development team komt versterken met het aanpakken van complexe en nieuwe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor zowel persoonlijke als professionele groei? Lees dan snel verder! Dit ga je doen: Aanpassingssuggesties van collega’s in kaart brengen, vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Ontwikkeling en beheer van de serviceportal in Symfony en

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar een ontwikkelaar ter versterking van het huidige developers team. Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten

Bekijk vacature »

Senior Lead Front End Developer

Functieomschrijving Voor Stichting Waternet zijn wij op zoek naar een senior Lead Front End Developer. Binnen het DevOps team Online zijn we op zoek naar een Senior Lead Front End developer met kennis van toegankelijkheid. Deze developer zal zich bezighouden met development van webpaginas die in verbinding staan met systemen uit het back office. Taken Ontwerpen, ontwikkelen, implementeren, documenteren en beheren van webapplicaties in een Azure-omgeving Debuggen, analyseren en oplossen van problemen in de OTAPomgevingen Je participeert in het DevOpsTeam Online voor het verder uitwerken en implementeren van gebruikerswensen Je bent betrokken bij toegankelijkheid audits en het implementeren van WCAG

Bekijk vacature »

Pagina: 1 2 volgende »

Wouter De Schuyter

Wouter De Schuyter

18/04/2012 18:05:10
Quote Anchor link
Hallo,

Ik heb onlangs dit domein gekocht en zou dus een persoonlijke url shortener willen maken.

Nu zou ik een algoritme nodig hebben voor de URL's te linken in de DB, dit kan uitraard gewoon met cijfers (id van de url bv) maar dat is niet echt netjes en gaat na verloop van tijd ook niet meer effectief zijn bv meer dan 10000 zijn al meteen 5 characters extra terwijl je met 4 cijfers & letters veel meer mogelijkheden hebt.

Een random string genereren met een lijst characters is een optie, maar dan zou ik voor elke mogelijkheid moeten kijken of dit nog niet in de DB bestaat en dat lijkt mij ook niet de ideale oplossing, stel dat er 100 mogelijke combinaties zijn en 99 zijn er al van gebruikt en het script moet dan telkens een nieuwe string genereren en vergelijken.. Dat kan niet de manier zijn.. Of wel?

Iemand suggesties hoe je dit het best aanpakt?
 
PHP hulp

PHP hulp

02/01/2025 13:43:33
 
Erwin H

Erwin H

18/04/2012 18:22:57
Quote Anchor link
Weet je wat binair is? Wat decimaal is? Wat hexadecimaal is?
En voornamelijk hoe je van een decimaal getal naar bijvoorbeeld een hexadecimaal getal gaat?
Nu, stel dat je nu een stelsel hebt voor 62 (0-9a-zA-Z). Dan worden de decimale getallen in dst stelsel dus:
0 - 0
9 - 9
10 - a
11 - b
60 - Y
61 - Z
62 - 10
63 - 11
123 - 1Z
124 - 20
Zo kan je dus al een heel eind verder gaan en toch gewoon je auto_increment gebruiken in je database.
 
Wouter De Schuyter

Wouter De Schuyter

18/04/2012 18:52:35
Quote Anchor link
Dat heb ik ook net gezien, maar er zijn er die claimen tot 12.000.000 te kunnen gaan met 4 chars, dat kan niet met hexadecimaal :/
 
Erwin H

Erwin H

18/04/2012 19:02:10
Quote Anchor link
Ik had het ook niet over hexadecimaal, maar een stelsel met 62 karakters (sorry, ik heb daar geen naam voor) en 62 tot de 4e = 14.776.336
Dat komt wel aardig in de buurt volgens mij...
 
Jurgen B

Jurgen B

18/04/2012 19:08:14
Quote Anchor link
Dat is inderdaad wat ik ook wilde zeggen (had Erwins reactie ook verkeerd gelezen in eerste instantie). Op die manier ben je wel even bezig voor je aan je 5e character zit.
 
Wouter De Schuyter

Wouter De Schuyter

18/04/2012 19:24:40
Quote Anchor link
Ok nu ben ik mee..
Maar hoe wil je die juist genereren en checken of ze al bestaan?
 
Jurgen B

Jurgen B

18/04/2012 19:44:18
Quote Anchor link
Als je weet hoe je van decimaal naar hexadecimaal (16 tallig stelsel) gaat kan je deze methode ook toepassen op een 62 tallig stelsel. Bij een nieuwe aanvraag voer je een nieuwe regel in de database en zet je het nieuwe id om naar je 62 tallig stelsel. Om te kijken of de url al bestaat zal je denk ik letterlijk op de url moeten zoeken, maar misschien denk ik te moeilijk en is er een efficienter/makkelijker alternatief.
Gewijzigd op 18/04/2012 19:44:45 door Jurgen B
 
Erwin H

Erwin H

18/04/2012 19:44:30
Quote Anchor link
Je kan gewoon een auto_increment laten lopen in je database die je omrekent naar een 4 karakter string. Op zich niet zo moeilijk, hoewel je wel even wat tijd zal moeten besteden aan hoe je van een getal naar de juiste letter gaat.
 
- SanThe -

- SanThe -

18/04/2012 23:02:32
Quote Anchor link
Jurgen B op 18/04/2012 19:44:18:
... kan je deze methode ook toepassen op een 62 tallig stelsel ...


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
function omrekenen($getal, $soort, $return = '')
{

    $chars = array_merge(range('0','9'),range('a','z'),range('A','Z'));
    switch($soort)
    {
        case
10:    if($getal > 61)
                    {

                        $return .= omrekenen(floor($getal / 62), $soort, $return);
                    }

                    $return .= $chars[($getal) % 62];
                    return $return;
        case
62:    for($i=0; $i<strlen($getal); $i++)
                    {

                        $search = (ord($getal[$i]) < 64) ? ord($getal[$i])-48 : $getal[$i];
                        $return += pow(62, strlen($getal)-$i-1) * array_search($search, $chars, true);
                    }

                    return $return;
        default:
    return 'Error';
    }
}


$random = rand(0,14776335);
$code = omrekenen($random, 10);
$getal = omrekenen($code, 62);
echo $random . ' => ' . $code . ' => ' . $getal . '<br />';
?>
 
Chris -

Chris -

18/04/2012 23:20:41
Quote Anchor link
Netjes SanThe :)
 
Wouter De Schuyter

Wouter De Schuyter

19/04/2012 09:56:05
Quote Anchor link
De oplossing van SanThe is dan nog de beste, want als ik dechex() gebruik op het ID kan je URL voorspellen..

MAAR

Stel ik heb 13.000.000 links gegeneerd met het script van SanThe.. Dan heb je 90% kans dat de URL al bestaat, hoe los je dit op? Elke keer checken of hij al in de DB zit en indien wel opnieuw genereren?



Vb: bij het generen van 10K items heb ik al meteen 6 duplicates http://pastie.org/3815467
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
    set_time_limit(60);
    error_reporting(E_ALL);

    function
calculate($getal, $soort) {

        $return = '';
        $chars = array_merge(range('0','9'), range('a','z'), range('A','Z'));

        switch($soort) {
            case
10:
                if($getal > 61) {
                    $return .= calculate(floor($getal / 62), $soort, $return);
                }

                $return = $chars[($getal) % 62];

                return $return;
            break;

            case
62:
                for($i = 0; $i < strlen($getal); $i++) {
                    $search = (ord($getal[$i]) < 64) ? ord($getal[$i])-48 : $getal[$i];
                    $return += pow(62, strlen($getal)-$i-1) * array_search($search, $chars, true);
                }

                
                return $return;
            break;

            default:

                return false;
            break;
        }
    }




    $array = $found = array();

    for($j = 0; $j < 10000; $j++) {
        $string = '';
        for($i = 0; $i < 4; $i++) {
            $string .= calculate(rand(0,14776335), 10);
        }


        echo $string . " ";
        if(!in_array($string, $array)) {
            $array[] = $string;
        }

        else {
            $found[] = $string;
        }
    }


    echo "\n\n\n";

    echo "Found " . count($found) . " duplicates (" . round((count($found) / (count($found) + count($array))) * 100, 2) . "%) on " . (count($found) + count($array)) . " items.";
    echo "\n\n";
    echo "Duplicates: \n";

    foreach($found as $item) {
        echo $item . "\n";
    }

?>
Gewijzigd op 19/04/2012 10:44:46 door Wouter De Schuyter
 
- SanThe -

- SanThe -

19/04/2012 11:06:44
Quote Anchor link
@Wouter: Waarom heb je de function niet correct overgenomen? Zoals jij het nu hebt zal ie niet correct werken.
 
Chris -

Chris -

19/04/2012 11:50:53
Quote Anchor link
Je zou eventueel ook 25 miljoen verschillende codes in de database kunnen plaatsen, met een "in gebruik" veld waar je een key op zet. Tijdens het invoeren van een URL voer je een RAND() query uit op de tabel waar "in gebruik" false is.
 
Wouter De Schuyter

Wouter De Schuyter

19/04/2012 12:26:49
Quote Anchor link
SanThe: ziezo met jouw code, maar krijg (logisch) nog steeds duplicates :/

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
    set_time_limit(60);
    
    function
omrekenen($getal, $soort, $return = '')
    {

        $chars = array_merge(range('0','9'),range('a','z'),range('A','Z'));
        switch($soort)
        {
            case
10:    if($getal > 61)
                        {

                            $return .= omrekenen(floor($getal / 62), $soort, $return);
                        }

                        $return .= $chars[($getal) % 62];
                        return $return;
            case
62:    for($i=0; $i<strlen($getal); $i++)
                        {

                            $search = (ord($getal[$i]) < 64) ? ord($getal[$i])-48 : $getal[$i];
                            $return += pow(62, strlen($getal)-$i-1) * array_search($search, $chars, true);
                        }

                        return $return;
            default:
    return 'Error';
        }
    }




    $array = $found = array();
    for($j = 0; $j < 10000; $j++) {
        $string = omrekenen(rand(0,14776335), 10);

        echo $string . " ";
        if(!in_array($string, $array)) {
            $array[] = $string;
        }

        else {
            $found[] = $string;
        }
    }


    echo "\n\n\n";

    echo "Found " . count($found) . " duplicates (" . round((count($found) / (count($found) + count($array))) * 100, 2) . "%) on " . (count($found) + count($array)) . " items.";
    echo "\n\n";
    echo "Duplicates: \n";

    foreach($found as $item) {
        echo $item . "\n";
    }

?>


@Chris: zou dat de correcte oplossing zijn? Zou het zo zijn dat bit.ly het bv doet? Lijkt mij nogal omslachtig..
Gewijzigd op 19/04/2012 12:46:18 door Wouter De Schuyter
 
Kees Schepers

kees Schepers

19/04/2012 12:36:55
Quote Anchor link
Ik zou het ook met noSQL opslaan, met MySQL ga je denk ik wel performance problemen krijgen nadat je een paar tientallen miljoenen url's erin hebt staan ;)
 
- SanThe -

- SanThe -

19/04/2012 14:52:26
Quote Anchor link
Zo krijg je geen duplicates meer:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    for($j = 0; $j < 10000; $j++) {
        $string = omrekenen(rand(0,14776335), 10);

        echo $string . " ";
        if(!in_array($string, $array)) {
            $array[] = $string;
        }

        else {
            $j--;
        }
    }

?>
Gewijzigd op 19/04/2012 14:52:46 door - SanThe -
 
Wouter De Schuyter

Wouter De Schuyter

19/04/2012 15:25:54
Quote Anchor link
@Kees wat zou dat voor problemen kunnen geven? MySQL?

@SanThe: hehe, dat is waar. Maar ik ga niet alle hashes uit de DB laden in een array en dan kijken of ze in die array zitten of wel? Stel dat je 14 miljoen records hebt kan dat niet echt performant zijn?
 
- SanThe -

- SanThe -

19/04/2012 15:34:04
Quote Anchor link
Als het in een database staat zou ik het zo ongeveer doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
do
{
    // genereer code
    // SELECT code

}
while (mysql_num_rows() == 1);
// INSERT code
?>
 
Gerhard l

gerhard l

19/04/2012 15:34:54
Quote Anchor link
Ik gebruik de manier van Chris Horeweg tot zover loopt het vloeiend (nog maar 900 urls verkort).
Maar ik denk dat de query wel sneller is dan alle bij langs lopen en kijken of ze al bestaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT short_code FROM short_list WHERE used='0'  ORDER BY RAND() LIMIT 1
Gewijzigd op 19/04/2012 15:35:28 door gerhard l
 
Kees Schepers

kees Schepers

19/04/2012 15:40:20
Quote Anchor link
Wouter DS op 19/04/2012 15:25:54:
@Kees wat zou dat voor problemen kunnen geven? MySQL?


Omdat je met MySQL veel sneller en lastiger moet opschalen als je tientallen miljoenen URL's opslaat. Tevens zal het niet goed performen als je over miljoenen URL's stats gaat genereren.
 
Pim -

Pim -

19/04/2012 15:40:27
Quote Anchor link
Je kan evt nog een hash toevoegen aan de string, zodat het moeilijk/lastig wordt URLs te raden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function encode($id, $hashSize = 100)
{

    $privateKey = 16546354324; // Moet je even checken wat de MAX_LONG waarde is
    $num = $id * $hashSize + ($id * $privateKey) % $hashSize;
    return base_convert($num, 10, 62);
}
function
decode($string, $hashSize = 100)
{

    $privateKey = 16546354324;
    $num = (int) base_convert($string, 62, 10);
    $hash = $num % $hashSize;
    $id = ($num - $hash) / $hashSize;
    if($hash != ($id * $privateKey) % $hashSize)
        return false; // Foute hash
    return $id;
}

?>

Door hashSize te variëren kan je je URL veiliger maken. hashSize = 100 betekent dat je max 100 pogingen nodig hebt om de URL te gokken als je het ID weet.

Deze code werkt trouwens niet omdat base_convert maart to base 36 gaat, maar het idee lijkt me duidelijk.


Toevoeging op 19/04/2012 15:41:49:

@Kees,
Maar noSQL is dan toch niet per se de beste vervanging? Een simpele key->value DB lijkt me een stuk nuttiger.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.