סטייל הפרדה בין מילים בשמות אובייקטים
-
בעקבות הפרוייקט הזה אשר אנו רוצים ליצור אותו במקביל בשני מסדי הנתונים הנפוצים ביותר, דהיינו mysql ו sql server, נתלבטנו כיצד יהיה סגנון ההפרדה בין מילים, בסטייל מייקרוסופט ודוט נט וכל הסביבה, מקובל להפריד בין מילים ע"י אות גדולה, (מה שמקובל גם בפוקנציות Jquery ועוד חלקים מעולם הקוד הפתוח) אולם בעולם הקוד הפתוח הכללי, בפרט במסדי נתונים mysql זה נראה שמקובל לא להשתמש באותיות גדולות בכלל, ולהפריד בין מילים באמצעות קו תחתי.
אז איך בכלל מכריעים בדבר כזה, שאין לו שום פרמטר מהותי, סתם עניין של סגנון. האם יש תאוריה כלשהי בנושא??
פורסם במקור בפורום CODE613 ב02/07/2014 12:13 (+03:00)
-
מה קורה?? אף אחד אין לו רעיון או ידע על נורמות בתחום הזה??
אני חשבתי על כך שרגישות לאותיות גדולות קיימת רק בחלק מהשפות, ואילו "רגישות" לקו תחתי, קיימת בכל השפות כולל אלו שרגישות לאותיות גדולות.
אז הואיל ומסד נתונים אמור להיות בלתי תלוי במימשק, רק המימשק תלוי במסד הנתונים, על כן מסד הנתונים צריך להיות בסגנון שמתאים לכל התוכנות.
אגב SQL SERVER - מבית מייקרוסופט שהטמיעו בדוט נט את הרגישות לאותיות גדולות - היא עצמה לא רגישה בחלק גדול מהמקרים לאותיות גדולות, אולם שפת sql עצמה וגם ב mysql יש רגישות בשמות של שדות וטבלאות לאותיות גדולות, משא"כ במילים שמורות ופונקציות, וצריך עיון טובא בזה.
מה דעתכם?? בפרט קליק וואן???
פורסם במקור בפורום CODE613 ב03/07/2014 21:43 (+03:00)
-
בקשר לרגישות לרישיות, C# הולכת אחרי C++,
TSQL לא רגישה, לפי התקן הרשמי שלה. לא יודע איפה מצאת רגישות.לעניין מוסכמות למתן שמות, ראה מה שמצאתי בסטאק:
http://stackoverflow.com/q/7662/1271037
http://stackoverflow.com/q/7899200/1271037
http://stackoverflow.com/q/5325520/1271037בהקשר דומה - יחיד לעומת רבים:
http://stackoverflow.com/q/338156/1271037
אגב, בEF הוא אוטומטית קורא לטבלאות עם S בסוף (לבטא רבים, באנגלית) כאשר לאובייקטים הוא משאיר כפי שהיו.פורסם במקור בפורום CODE613 ב03/07/2014 22:50 (+03:00)
-
@דוד ל.ט.
TSQL לא רגישה, לפי התקן הרשמי שלה. לא יודע איפה מצאת רגישות.
רק להעיר ש T-SQL אכן לא רגישה מבחינת שמות הטבלאות והמשתנים אך מבחינת ערכי השדות זה תלוי ב COLLATION של ה DB -> טבלה -> שדה
CI = Case Insensitive, CS = Case sensitive
משליך על מפתחות ועל תנאים שכוללים השוואות מול השדה
לדוגמה:
היה לי מקרה לאחרונה שבו ניטרתי תיבת מייל באופיס 365 ורשמתי את ההודעות ל DB
לכל הודעה הוא נותן איזשהו ID אלפא-נומרי ארוך מכיוון שבכל קריאה אני צריך רק את המיילים שעדיין לא קראתי
אז ביססתי את הפיתרון על כך שאני קורא מהתיבה רק מיילים שאין לי את ה ID שלהם בטבלה
בגלל עניין האי רגישות הוא פספס חלק מהמיילים שהיה להם ID זהה לשל אחרים רק עם CASE שונה,
בקיצער אמייסע, עשיתי ALTER COLUMN והחלפתי את ה COLLATION ל CS והבעיה נפתרה באחת . . .פורסם במקור בפורום CODE613 ב06/07/2014 22:02 (+03:00)
-
אז אחרי תקופה שלא היה לי זמן לכתוב כאן בפורום (תמיד הימים שבין ה1 ל10 לחודש קצת לחוצים אצלי :() ורק קפצתי לבקר ולראות מה אתם כותבים, אז הנה אני כאן...
אני חושב שהעניין הוא לא אם יש רגישות לאותיות גדולות או קטנות. - המשמעות אם יש רגישות היא רק שהמתכנת יצטרך לשים לב שהוא נצמד לאותיות גדולות/קטנות המוגדרות בשם השדה ותו לא. (בMySql מותר לתת אותיות גדולות בשם שדה, אבל ייתכן שתמיד יהיו חייבים להיצמד לזה)
העניין האמיתי שעליו ארכיטקט מדבר הוא האם לקחת את האחידות לכיוון שלאותיות גדולות כמפריד מילה, או קו תחתון.
אז אולי נבדוק ביחד:
בMySql הנוהג הוא להשתמש בקו תחתון מפריד. -- דיברתי על הנושא עם יקיר (KIngYes) שטוען שהוא השתמש בעבר בMySql באותיות גדולות מפרידות, וכשהוא העביר את הDB לשרת אחר, הכל עבר אוטו' לאותיות קטנות ואז הוא אכל הרבה "קש" כדי לסדר את זה (בגלל הרגישות) - אני לא נכנס כעת מה הוא היה יכול לעשות כדי למנוע את זה, כי זה לא העניין כאן. הפיתרון המדהים שארכיטקט מציג כאן הוא בעצם פשטות. אז אין טעם לדעתי לגרום למשתמשי MySql לחוסר פשטות בסיטואציה כלשהיא.מצד שני, אם אנחנו מדברים על פשטות, אז למשתמשי SQL SERVER פשטות זה אותיות גדולות מפרידות, והדרה קושייא לדוכתא!!
ע"כ נראה לומר לענ"ד שבכ"ז ננסה להשתמש בקו תחתון מפריד למען משתמשי הMySql, ובמקביל, לכתוב סקריפט עבור משתמשי הקצה שירצו הפרדה של אות גדולה שיעבור בלופ על כל הטבלאות והשדות בטבלאות, ואיפה שיש קו תחתון הוא ימחק את הקו התחתון, ובמקום זה יהפוך את האות שאחרי הקו התחתון (שנמחק) לאות גדולה, והאמת והשלום אהבו.
וכן לעניין הממשק (אם יוחלט לפתח טמפלט) - אולי לסדר איזה משתנה גלובלי + פונקצייה שתמיר את השדות מתבנית קו תחתון לתבנית אותיות גדולות מפרידות.
והנלע"ד כתבתי.ד"א, softs - ברוך הבא!! (לא זוכר אם כתבתי לך כבר) - המקצועיות ניכרת <!-- s:-) --><img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":-)" title="מחייך" /><!-- s:-) -->
פורסם במקור בפורום CODE613 ב16/07/2014 23:40 (+03:00)