הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   חיסכון במשאבים, 2 טבלאות. (https://hosts.co.il/forums/showthread.php?t=62021)

Daniel 17-04-08 00:04

חיסכון במשאבים, 2 טבלאות.
 
יש לנו 2 טבלאות.
nicks
id ---- name

כאשר id הוא auto_increment(גדל ב-1 כל פעם שמוכנסת אליו שורה). name הוא השדה שבו מאוכסן השם.

nicks_visited
nickid

nickid מכיל מספר מספרים, מופרדים בפסיקים. לדוגמא, 1,4,2.

כיצד אני עושה באופן שיחסוך משאבים ככל האפשר, שבעצם תהפוך לי את המספרים שנמצאים ליד הפסיקים, לשמות, בטבלת nicks? ניסיתי בעזרת JOIN, לא הצלחתי, מישהו יכול לנסות לתת לי דרך? יש לי כמה רעיונות, אבל אני רוצה לדעת מה יחסוך במשאבים הכי הרבה, כי לרוץ עם לולאה על nicks על כל המספר, זה נראה לי כבזבוז משאבים.

יש לי הרגשה שאני מפספס כאן משהו...

Gal Shafrir 17-04-08 00:31

אני חושב שאפשר לעשות משהו כמו:
PHP קוד:

<?php

    $query 
mysql_query("SELECT `nickid` FROM `nicks_visited`") or die(mysql_error());
        
$r mysql_fetch_array();    

        
$nicks $r['nickid'];

    
mysql_query("SELECT * FROM `nicks` WHERE id IN({$nicks})");

?>


Daniel 17-04-08 00:54

אבל כיצד אני אעשה, שלדוגמא, אם הטבלה nicks מכילה:(id משמאל, name מימין)
1 | tomer
2 | דניאל
3 | חתול
ו-nicks_visited
3
2

אני אקבל מערך, 2 => דניאל, 3=> חתול

Gal Shafrir 17-04-08 01:47

טוב מצטער, אני לא רואה דרך אחרת חוץ מלולאה.

4ior 17-04-08 06:30

לא בונים ככה טבלה.
אני לא יודע איזה עוד ערכים יש לך בnicks_visited אבל בעקרון תעשה שורה לכל nickid במקום להפריד אותם בפסיקים..ואז תוכל להשתמש בLeft Join

Daniel 17-04-08 10:12

ציטוט:

נכתב במקור על ידי 4ior (פרסם 624868)
לא בונים ככה טבלה.
אני לא יודע איזה עוד ערכים יש לך בnicks_visited אבל בעקרון תעשה שורה לכל nickid במקום להפריד אותם בפסיקים..ואז תוכל להשתמש בLeft Join

אבל זה יתפוס הרבה מקום.


מן הסתם שזאת לא הטבלה המלאה...

4ior 17-04-08 12:53

ציטוט:

נכתב במקור על ידי MasterT (פרסם 624877)
אבל זה יתפוס הרבה מקום.


מן הסתם שזאת לא הטבלה המלאה...

שטויות..אתה כנראה לא מארגן את זה טוב

Daniel 17-04-08 13:54

ציטוט:

נכתב במקור על ידי 4ior (פרסם 624919)
שטויות..אתה כנראה לא מארגן את זה טוב

ולמה אתה חושב כך? לזרוק סתם ככה דברים באוויר, ללא שום אימות של מטרת הטבלה, זה לפי דעתי צרות עיין בנוגע לשאלה הספציפית הזאת..

באותה המידה, כאשר למישהו יש 3 שאילתות בדף, ולמישהו אחר 10, מי לוקח יותר משאבים? אי אפשר לדעת. הכל תלוי באופי השאילתות, בגודל המסד, וכו'.

לכן אני מבקש שאם אין לך פיתרון לבעייה, אל תדחה אותה על הסף, ואבקש שאם תרצה להמשיך שיחה זאת, ניתן לעשות זאת בהודעות פרטיות


יום טוב, דניאל.

4ior 17-04-08 14:12

חחחח זה שאתה יענו מדבר יפה לא מרשים אף אחד גבר..
אני אומר לך שלא ככה בונים טבלה כי כבר בניתי כמוך ובניתי כמו שאני ממליץ לך לבנות.
והשיטה השנייה יותר טובה.

Daniel 17-04-08 14:26

ציטוט:

נכתב במקור על ידי 4ior (פרסם 624946)
חחחח זה שאתה יענו מדבר יפה לא מרשים אף אחד גבר..
אני אומר לך שלא ככה בונים טבלה כי כבר בניתי כמוך ובניתי כמו שאני ממליץ לך לבנות.
והשיטה השנייה יותר טובה.

אני לא מנסה להרשים, אני מבקש עזרה, ואתה מחליט מייד מהי מטרת הטבלה/מה הדרך היעילה ביותר לבצע זאת. אם אתה לא יכול לדמיין מה אני עושה(ואני גם לא יכול להגיד), אז אשמח אם רק תעזור, בלי להציע רעיונות אחרים, כי עברתי על כל האפשרויות. וכרגע אני אהיה "צר עין", ואשמח רק לקבל תשובות בנוגע לשאלתי, ללא הצעות אחרות.

איזה שיטה שנייה?

יום טוב, דניאל.


כל הזמנים הם GMT +2. הזמן כעת הוא 20:03.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ