דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. יצירת טבלה ללא מפתח ראשי - הכצעקתה?!

יצירת טבלה ללא מפתח ראשי - הכצעקתה?!

מתוזמן נעוץ נעול הועבר ארכיון code613m
22 פוסטים 5 כותבים 1.2k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • רחמיםר מנותק
    רחמיםר מנותק
    רחמים מורחק
    כתב ב נערך לאחרונה על ידי
    #2

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

    פורסם במקור בפורום CODE613 ב21/03/2017 07:44 (+02:00)

    תגובה 1 תגובה אחרונה
    2
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #3

      @רחמים

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

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

      פורסם במקור בפורום CODE613 ב21/03/2017 11:59 (+02:00)

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      0
      • A מנותק
        A מנותק
        avr416
        כתב ב נערך לאחרונה על ידי
        #4

        @רחמים

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

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

        לא רואה פה תשובה.

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

        פורסם במקור בפורום CODE613 ב21/03/2017 13:23 (+02:00)

        תגובה 1 תגובה אחרונה
        0
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #5

          @avr416

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

          מה פתאום? EF תומך במפתח ראשי שמשתרע על כמה עמודות (Composite keys).
          השאלה שלך היה למה בכלל צריך מפתח ראשי, ואני מצטרף לשאלה. הבנתי שזה קשור למנגנון איך שEF עוקב אחרי הרשומות אבל לא הבנתי למה א"א שהמנגנון לא יעבוד בטבלה הזו וזהו.
          אכן יש גם המלצה שהמפתח יהיה אישי לטבלה - שכל שורה בה תהיה ישות משלה (ולא צרוף של מפתחות זרים): http://softwareengineering.stackexchange.com/a/45152/112215 לא היה לי כח להבין למה.
          אני גם שמעתי בעבר המלצה תמיד שהמתח ראשי יהיה identity כלומר מס' אוטומטי ואני מבין שזה קשור לבעיות של הצבת הערך בו זמנית וכודמה, ולא בגלל שיקולים עמוקי הבנה אבל אולי אני טועה.

          פורסם במקור בפורום CODE613 ב21/03/2017 13:54 (+02:00)

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          2
          • א מנותק
            א מנותק
            ארכיטקט
            כתב ב נערך לאחרונה על ידי
            #6

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

            פורסם במקור בפורום CODE613 ב21/03/2017 16:28 (+02:00)

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

            תגובה 1 תגובה אחרונה
            2
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #7

              @ארכיטקט

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

              אני חושב שאתה צודק רק באקסס. בSQLSERVER אני לא חושב ככה - למה שלא יהיה רצף רשומות כמו שורות בקובץ דטה?

              פורסם במקור בפורום CODE613 ב22/03/2017 03:03 (+02:00)

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              0
              • רחמיםר מנותק
                רחמיםר מנותק
                רחמים מורחק
                כתב ב נערך לאחרונה על ידי
                #8

                @דוד ל.ט.

                הבנתי שזה קשור למנגנון איך שEF עוקב אחרי הרשומות אבל לא הבנתי למה א"א שהמנגנון לא יעבוד בטבלה הזו וזהו.

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

                פורסם במקור בפורום CODE613 ב22/03/2017 08:13 (+02:00)

                תגובה 1 תגובה אחרונה
                2
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי
                  #9

                  @רחמים

                  @דוד ל.ט.
                  הבנתי שזה קשור למנגנון איך שEF עוקב אחרי הרשומות אבל לא הבנתי למה א"א שהמנגנון לא יעבוד בטבלה הזו וזהו.

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

                  את מה שאתה אומר אין מניעה לעשות גם בלי מפתח ראשי.
                  אני התכוונתי שכלול של המנגנון - טעינה בחזרה מהDB וכדומה אבל שוב - זה לא ברור לי.

                  פורסם במקור בפורום CODE613 ב22/03/2017 09:59 (+02:00)

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  תגובה 1 תגובה אחרונה
                  0
                  • א מנותק
                    א מנותק
                    ארכיטקט
                    כתב ב נערך לאחרונה על ידי
                    #10

                    @דוד ל.ט.

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

                    אני חושב שאתה צודק רק באקסס. בSQLSERVER אני לא חושב ככה - למה שלא יהיה רצף רשומות כמו שורות בקובץ דטה?

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

                    פורסם במקור בפורום CODE613 ב22/03/2017 10:37 (+02:00)

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

                    תגובה 1 תגובה אחרונה
                    0
                    • רחמיםר מנותק
                      רחמיםר מנותק
                      רחמים מורחק
                      כתב ב נערך לאחרונה על ידי
                      #11

                      @ארכיטקט

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

                      אני חושב שאתה צודק רק באקסס. בSQLSERVER אני לא חושב ככה - למה שלא יהיה רצף רשומות כמו שורות בקובץ דטה?

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

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

                      פורסם במקור בפורום CODE613 ב24/03/2017 08:55 (+03:00)

                      תגובה 1 תגובה אחרונה
                      0
                      • א מנותק
                        א מנותק
                        ארכיטקט
                        כתב ב נערך לאחרונה על ידי
                        #12

                        @רחמים

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

                        כדאי שתלמד דבר או שניים אודות אינדקסים לפני שאתה קובע קביעות.
                        @רחמים

                        חוץ מזה שמפתח ראשי הרבה פעמים הוא GUID.

                        מה זה קשור לנושא????

                        @רחמים

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

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

                        כל זה כתבתי בשביל אברהם שלא ילך שולל אחרי אמירותיך חסרות האחריות. לא בשבילך, כי אתה כבר יודע הכל מסברא, ואינני מתכוון ח"ו לחלוק על סברותיך חלילה.

                        פורסם במקור בפורום CODE613 ב24/03/2017 12:49 (+03:00)

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

                        תגובה 1 תגובה אחרונה
                        0
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          כתב ב נערך לאחרונה על ידי
                          #13

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

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

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

                          פורסם במקור בפורום CODE613 ב24/03/2017 12:55 (+03:00)

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          תגובה 1 תגובה אחרונה
                          0
                          • רחמיםר מנותק
                            רחמיםר מנותק
                            רחמים מורחק
                            כתב ב נערך לאחרונה על ידי
                            #14

                            @דוד ל.ט.

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

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

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

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

                            פורסם במקור בפורום CODE613 ב24/03/2017 13:05 (+03:00)

                            תגובה 1 תגובה אחרונה
                            0
                            • רחמיםר מנותק
                              רחמיםר מנותק
                              רחמים מורחק
                              כתב ב נערך לאחרונה על ידי
                              #15

                              @ארכיטקט

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

                              כדאי שתלמד דבר או שניים אודות אינדקסים לפני שאתה קובע קביעות.
                              @רחמים

                              חוץ מזה שמפתח ראשי הרבה פעמים הוא GUID.

                              מה זה קשור לנושא????

                              @רחמים

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

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

                              כל זה כתבתי בשביל אברהם שלא ילך שולל אחרי אמירותיך חסרות האחריות. לא בשבילך, כי אתה כבר יודע הכל מסברא, ואינני מתכוון ח"ו לחלוק על סברותיך חלילה.

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

                              פורסם במקור בפורום CODE613 ב24/03/2017 13:08 (+03:00)

                              תגובה 1 תגובה אחרונה
                              0
                              • dovidD מנותק
                                dovidD מנותק
                                dovid ניהול
                                כתב ב נערך לאחרונה על ידי
                                #16

                                מפתח ראשי זה אינדקס. לכל דבר, ושמו clustered index. ועל זה הנושא מתחילת האשכול, ותסלח לי שאני קובע שאתה ממש לא יודע מספיק במסד נתונים וממילא זה די חמור שאתה חולק וקובע כבקיא ורגיל. היית כול לכתוב מה שכתבת עם "שמא" ו"נראה לי" זה היה יותר נורמלי.
                                אתה חושב שכשקובעים מפתח ראשי זה עניין למשתמש - ואין לזה קשר לעבודה מאחורי הקלעים והבאת ראיות לכך. נתחיל מתחילה:

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

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

                                ב. יש מפתח שאיננו מספר כמו GUID וגם מפתח שהוא מספר לא מייצג מקום בדיסק בגלל שורות מחוקות.
                                אז כתבתי לך שכל מפתח זה שורה בטבלה (לצורך הפשטה - למעשה זה מין עץ) שמכילה את המפתח ואת עכו - כתובת בדיסק המידע הזה ניתן לשינוי כמה שרוצים והמפתח נשאר זהה. אף אחד לא חשב שנתון המפתח עצמו כמו מספר 456 אומר ישירות איפה זה בדיסק. שכחת שגם מפתח אם מספר הוא לא בהכרח עם סדר עולה אוטומטית - וגם ארכיטקט לא דרש את זה.

                                פורסם במקור בפורום CODE613 ב24/03/2017 14:15 (+03:00)

                                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                תגובה 1 תגובה אחרונה
                                0
                                • רחמיםר מנותק
                                  רחמיםר מנותק
                                  רחמים מורחק
                                  כתב ב נערך לאחרונה על ידי
                                  #17

                                  @דוד ל.ט.

                                  מפתח ראשי זה אינדקס. לכל דבר, ושמו clustered index. ועל זה הנושא מתחילת האשכול, ותסלח לי שאני קובע שאתה ממש לא יודע מספיק במסד נתונים וממילא זה די חמור שאתה חולק וקובע כבקיא ורגיל. היית כול לכתוב מה שכתבת עם "שמא" ו"נראה לי" זה היה יותר נורמלי.
                                  אתה חושב שכשקובעים מפתח ראשי זה עניין למשתמש - ואין לזה קשר לעבודה מאחורי הקלעים והבאת ראיות לכך. נתחיל מתחילה:

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

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

                                  ב. יש מפתח שאיננו מספר כמו GUID וגם מפתח שהוא מספר לא מייצג מקום בדיסק בגלל שורות מחוקות.
                                  אז כתבתי לך שכל מפתח זה שורה בטבלה (לצורך הפשטה - למעשה זה מין עץ) שמכילה את המפתח ואת עכו - כתובת בדיסק המידע הזה ניתן לשינוי כמה שרוצים והמפתח נשאר זהה. אף אחד לא חשב שנתון המפתח עצמו כמו מספר 456 אומר ישירות איפה זה בדיסק. שכחת שגם מפתח אם מספר הוא לא בהכרח עם סדר עולה אוטומטית - וגם ארכיטקט לא דרש את זה.

                                  דוד, גם אתה מתפרץ לדלת פתוחה, כשאני אומר מפתח ראשי אני לא מתכוון לאינדקס שמאחורי הקלעים, וגם פותח האשכול לא דיבר על האינדקס הזה, פותח האשכול דיבר על עמודה בטבלה, עמודת המפתח הראשי, לא על אינדקס. לא מדברים על clustered index אלא על primary key.
                                  כל מה שאמרתי לא דיברתי על האינדקס אלא על העמודה. וכל מה שאמרתי נכון בהחלט על העמודה. יכול להיות שמה שארכיטקט אמר נכון בהקשר לאינדקס, אבל הוא הזכיר את המילים 'מפתח ראשי' ולא אמר אינדקס.
                                  גם מערך בויקיפדיה שקישרתי אליו לעיל עולה בברור שמפתח ראשי הכוונה לעמודה ולא לאינדקס כל שהוא.

                                  פורסם במקור בפורום CODE613 ב24/03/2017 14:28 (+03:00)

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • dovidD מנותק
                                    dovidD מנותק
                                    dovid ניהול
                                    כתב ב נערך לאחרונה על ידי
                                    #18

                                    @רחמים

                                    לא מדברים על clustered index אלא על primary key

                                    בשם כל המתפרצים, עמך הסליחה.

                                    פורסם במקור בפורום CODE613 ב24/03/2017 14:38 (+03:00)

                                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                    תגובה 1 תגובה אחרונה
                                    1
                                    • רחמיםר מנותק
                                      רחמיםר מנותק
                                      רחמים מורחק
                                      כתב ב נערך לאחרונה על ידי
                                      #19

                                      @דוד ל.ט.

                                      @רחמים

                                      לא מדברים על clustered index אלא על primary key

                                      בשם כל המתפרצים, עמך הסליחה.

                                      אי הבנה קטנה, לא נורא, קורה 😉

                                      פורסם במקור בפורום CODE613 ב24/03/2017 15:03 (+03:00)

                                      תגובה 1 תגובה אחרונה
                                      0
                                      • M מנותק
                                        M מנותק
                                        magicode
                                        כתב ב נערך לאחרונה על ידי
                                        #20

                                        דווקא מסתבר שכמו שארכירטקט אומר שיש כתובת כלשהי לכל שורה ממילא.
                                        ולמה זה מסתבר כי זה פותר את הבעיה של חורים במסד נתונים אחרי שנמחקו שורות.
                                        יכול להיות שהמסד מחזיק שני טבלאות טבלת מידע וטבלת מפתח ראשי. בטבלת המידע הוא מחזיק רשומות לפי סדר 1.2.3 ואז. כל פעם שנכנסת רשומה הוא מכניס את זה אחד אחרי השני אפילו אם המפתח לא מסודר ככה. למשל אם אני מכניס מפתח 5 ואחרי זה 4 אז בטבלת המפתחות זה יהיה מסודר אבל 5 יצביע ל 0 ו 4 יצביע ל 1. אם אני ימחק את 5 ואחרי זה אני יכניס 8 אז הוא יכניס את 8 ל 0.

                                        יעלה תזרקו עגבניות.

                                        פורסם במקור בפורום CODE613 ב24/03/2017 15:29 (+03:00)

                                        תגובה 1 תגובה אחרונה
                                        0
                                        • רחמיםר מנותק
                                          רחמיםר מנותק
                                          רחמים מורחק
                                          כתב ב נערך לאחרונה על ידי
                                          #21

                                          @mat

                                          דווקא מסתבר שכמו שארכירטקט אומר שיש כתובת כלשהי לכל שורה ממילא.
                                          ולמה זה מסתבר כי זה פותר את הבעיה של חורים במסד נתונים אחרי שנמחקו שורות.

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

                                          פורסם במקור בפורום CODE613 ב24/03/2017 15:35 (+03:00)

                                          תגובה 1 תגובה אחרונה
                                          0

                                          • 1
                                          • 2
                                          בא תתחבר לדף היומי!
                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • דף הבית
                                          • קטגוריות
                                          • פוסטים אחרונים
                                          • משתמשים
                                          • חיפוש
                                          • חוקי הפורום