יש לך בוודאי איזשהו key ייחודי לכל רשומה. זה לא חייב להיות דשה ספציפי, אלא אפילו סט של שדות ברשומה שעושים אותה ייחודית.
נניח שיש לך DB המכיל שמות אנשים, סוג הרכב שלהם ומספר הק"מ שעשו (דוגמא מעאפנית אבל זה מה שיצא לי).
נניח (ואני יודע שאפשר לסתור את זה, אבל רק נניח) ששמות יכולים לחזור על עצמם, כמו גם סוגי הרכב והקילומטראז', אבל אין אף סוג של רכב שיש לו אותו ק"מ. אז המפתח שלך הוא גם הק"מ וגם סוג הרכב (נניח שסוג הרכב זה מספר רץ בין 1 ל-9).
אתה יכול להוסיף שדה לרשומות שלך שיקרא key (או בלעדיו, רק ככה נוח לי להסביר), והוא יכיל פוונקציה הבאה : מס' הק"מ כפול 10 , פלוס מס' סוג הרכב.
כך תמיד תקבל מספר ייחודי. כעת שאילת חיפוש עבור מס' רכב וק"מ ייחודיים יעשו כך: נניח שהיוזר מחפש רכב שעשה 10,012 ק"מ מרכב מסוג 4. חישבת מיידית שהמספר הוא 100,124 (בטוח שאין אף אחד כזה במערכת שלך). בהנחה שבעת הכנסת כל רשומה ביצעת מיון לפי המפתח הזה, בצע שאילתה פשוטה לחיפוש הרשומה לפי המספר שקיבלת מהחישוב. למעשה זה ב- (O(1 (או תלוי בשאילתה ייתכן ו - nlog*n אבל לא יותר גרוע מזה ובוודאי לא O של N !)
מקווה שהבנת מההסבר הזה את המימוש (ובאמת לא משנה באיזו שפה). ואני ממליץ על החישובים האלה להעשות משפת התיכנות ולא באמצעות SQL כי זה יהיה הרבה יותר יעיל (כמובן אם זה ניתן באפליקציה הספציפית שלך).
