iKonekt
ಕನ್ಸೋಲ್ ತೆರೆಯಿರಿ

ಪ್ರತ್ಯೇಕತೆ

ಕೋಡ್ ಅಲ್ಲ, ಡೇಟಾಬೇಸ್ ಕಾಪಾಡುವ ಗಡಿ

ಪ್ರತಿಯೊಂದು CRM ತಾನು ಬಹು-ಟೆನೆಂಟ್ ಎಂದು ಹೇಳಿಕೊಳ್ಳುತ್ತದೆ. ಆ ಹೇಳಿಕೆ ಸುಲಭ; ಮುಖ್ಯವಾದುದು ಯಾವ ಪದರ ಆ ಗಡಿಯನ್ನು ಹಿಡಿದಿಟ್ಟಿದೆ ಎಂಬುದು. ಉತ್ತರ "ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಯಾವಾಗಲೂ ಸರಿಯಾದ ಫಿಲ್ಟರ್ ಸೇರಿಸುತ್ತದೆ" ಆದರೆ, ಆ ಖಾತರಿ ಕೇವಲ ಒಮ್ಮೆ ಕ್ವೆರಿ ಬರೆದ ಅತ್ಯಂತ ನಿದ್ರೆ ಕಡಿಮೆಯಾದ ಡೆವಲಪರನಷ್ಟೇ.

iKonekt ಮೊದಲ ಮೈಗ್ರೇಶನ್‌ನಿಂದಲೇ ಬಹು-ಟೆನೆಂಟ್ ಆಗಿತ್ತು, ನಂತರ ಸೇರಿಸಲಾಗಿಲ್ಲ — ಇದು ಆಡಂಬರವೆಂದು ಕೇಳಿದರೂ ವಾಸ್ತವವಾಗಿ ಒಪ್ಪಿಕೊಳ್ಳುವಿಕೆ: ನಂತರ ಸೇರಿಸುವುದು ಮನವರಿಕೆಯಾಗುವಂತೆ ಮಾಡುವುದು ಬಹುತೇಕ ಅಸಾಧ್ಯ, ಮತ್ತು ಪ್ರಯತ್ನಿಸಿದ ಪ್ರತಿಯೊಬ್ಬರ ಬಳಿಯೂ ಒಂದು ಕಥೆ ಇದೆ.

ಬೇರ್ಪಡುವಿಕೆ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ವಾಸಿಸುತ್ತದೆ. ಇಪ್ಪತ್ತಾರು ಟೇಬಲ್‌ಗಳ ಪ್ರತಿಯೊಂದೂ ತನ್ನದೆಂದು ಸೇರಿದ ಟೆನೆಂಟ್ ಅನ್ನು ಹೊಂದಿದೆ, ಮತ್ತು ಅದನ್ನು ಪರಿಶೀಲಿಸುವ ನೀತಿ ಪ್ರತಿ ಓದು ಮತ್ತು ಪ್ರತಿ ಬರವಣಿಗೆಯಲ್ಲಿ, ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಸಂಪೂರ್ಣ ಕೆಳಗೆ ಚಲಿಸುತ್ತದೆ. ಗಡಿಯನ್ನು ಮರೆತ ಕ್ವೆರಿ ಬೇರೊಬ್ಬರ ಗ್ರಾಹಕರನ್ನು ಹಿಂತಿರುಗಿಸುವುದಿಲ್ಲ. ಅದು ಏನನ್ನೂ ಹಿಂತಿರುಗಿಸುವುದಿಲ್ಲ.

ಸಾಲು-ಮಟ್ಟದ ಭದ್ರತೆ, ಕಡ್ಡಾಯವಾಗಿ

ಸಂಪ್ರದಾಯವಲ್ಲ, ಕೋಡ್ ರಿವ್ಯೂ ನಿಯಮವಲ್ಲ. ಡೇಟಾಬೇಸ್ ನಿರಾಕರಿಸುತ್ತದೆ. ಎಪ್ಪತ್ತೆರಡು ನೀತಿಗಳನ್ನು ಒಂದೊಂದಾಗಿ ಬರೆಯಲಾಗಿದೆ, ರಚಿಸಿಲ್ಲ — ಏಕೆಂದರೆ ರಚಿಸಿದ ನೀತಿಯನ್ನು ಯಾರೂ ಓದಿರುವುದಿಲ್ಲ.

ಸಂಯುಕ್ತ ಕೀಗಳು

ಉಪ-ದಾಖಲೆಯು ತನ್ನ ಟೆನೆಂಟ್ ಅನ್ನು ಮತ್ತು ತನ್ನ ಮೂಲ ದಾಖಲೆಯನ್ನು ಒಟ್ಟಿಗೆ, ಜೋಡಿಯಾಗಿ ಉಲ್ಲೇಖಿಸುತ್ತದೆ. ತಪ್ಪು ಕಂಪನಿಯ ಅನಿಯಂತ್ರಿತ ಗುರುತು ಪರಿಹಾರವಾಗುವುದಿಲ್ಲ — ಅದು ಸಿಂಧುವಾದ ಉಲ್ಲೇಖವೇ ಅಲ್ಲ.

ಯಾವುದೇ ಪೂರ್ವನಿಯೋಜಿತ ಟೆನೆಂಟ್ ಇಲ್ಲ, ಎಂದಿಗೂ ಇಲ್ಲ

ವ್ಯಾಪ್ತಿ ಇಲ್ಲದ ವಿನಂತಿ ಮೌನವಾಗಿ ಟೆನೆಂಟ್ ಶೂನ್ಯದ ವಿನಂತಿಯಾಗುವುದಿಲ್ಲ. ಅದು ಡೇಟಾಬೇಸ್ ತಲುಪುವ ಮೊದಲೇ ದೋಷ ಎಸೆಯುತ್ತದೆ. ಆಫ್ ಮಾಡಲು ಮರೆಯಬಹುದಾದ "ವ್ಯಾಪ್ತಿರಹಿತ" ಮೋಡ್ ಇಲ್ಲ.

ಸ್ವತಃ ಘೋಷಿಸಿಕೊಳ್ಳಲಾಗದ ದೋಷ

ಟೆನೆನ್ಸಿ ಕಾರ್ಯ ನಡೆಯುತ್ತಿರುವಾಗ, ಹೆಚ್ಚಿನ ತಪ್ಪುಗಳು ಗದ್ದಾಗಿಯೇ ಇದ್ದವು. ಎರಡು ಕಂಪನಿಗಳಿಗೆ ಒಂದೇ ಗ್ರಾಹಕ ಡೊಮೇನ್ ಮತ್ತು ಡೇಟಾಬೇಸ್ ವಸ್ತುಗಳನ್ನು ತಕ್ಷಣ ನೀಡಿದರೆ, ದೋಷ ಕೋಡ್ ಮತ್ತು ಸ್ಟಾಕ್ ಟ್ರೇಸ್ ಬರುತ್ತದೆ; ಊಟದ ಮೊದಲೇ ನೀವು ಅದನ್ನು ಸರಿಪಡಿಸಬಹುದು.

ಒಂದು ವಿಷಯ ವಿರೋಧಿಸಲಿಲ್ಲ. ಸಂಪಾದಿಸಬಹುದಾದ ಪ್ರಾಂಪ್ಟ್ ಓವರ್‌ರೈಡ್‌ಗಳ ಟೇಬಲ್ ಒಂದೇ ರೀತಿಯ ಪ್ರಾಂಪ್ಟ್‌ನ ಕೀ ಮೇಲೆ ಮಾತ್ರ ಆಧಾರಿತವಾಗಿತ್ತು — ಕೀ ಮತ್ತು ಟೆನೆಂಟ್ ಎರಡರ ಮೇಲಲ್ಲ. ಎರಡನೇ ಕಂಪನಿಯು ತನ್ನದೇ ಆದ ಪ್ರತಿಯನ್ನು ಸಂಪಾದಿಸಿದಾಗ, ಸಂಪೂರ್ಣ ಸರಿಯಾದ SQL ಮೂಲಕ, ಯಾವುದೇ ದೋಷ, ಎಚ್ಚರಿಕೆ ಅಥವಾ ವಿಫಲವಾದ ಪರೀಕ್ಷೆಯಿಲ್ಲದೆ, ಮೊದಲ ಕಂಪನಿಯದನ್ನು ಶಾಂತವಾಗಿ ಅತಿಕ್ರಮಿಸುತ್ತಿತ್ತು. ಇದು ಒಂದು ಕೀ ಬದಲಾಯಿಸಿದ ನಂತರ, ಗದ್ದಾಗಿ ಬಂದವುಗಳಿಗೆ ಸಂಗಾತಿ ಇದೆಯೇ ಎಂಬ ಅನುಮಾನದಿಂದ, ಉಳಿದ ಪ್ರತಿಯೊಂದು ವಿಶಿಷ್ಟ ಸೂಚ್ಯಂಕವನ್ನು ಒಂದೊಂದಾಗಿ ಓದುವ ಮೂಲಕ ಪತ್ತೆಯಾಯಿತು.

ಇದನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತಿದ್ದೇವೆ ಏಕೆಂದರೆ ಇದು ಈ ಕಾರ್ಯದ ಪ್ರಾಮಾಣಿಕ ಸ್ವರೂಪ. ಬೇರ್ಪಡಿಕೆ ಎಂಬುದು ನೀವು ಆನ್ ಮಾಡುವ ಒಂದು ವೈಶಿಷ್ಟ್ಯವಲ್ಲ; ಅದರಲ್ಲಿ ಏನೋ ನಿಮ್ಮೊಂದಿಗೆ ಒಪ್ಪದೇ ಇರಬಹುದು ಎಂಬ ಊಹೆಯ ಮೇಲೆ ಸ್ಕೀಮಾದ ಬೇಸರದ ಭಾಗಗಳನ್ನು ಓದುವ ಒಂದು ಅಭ್ಯಾಸ.

ದಾಖಲೆಗಾಗಿ ಪರೀಕ್ಷೆಗಳು: ಒಟ್ಟು 942, ಪ್ರತಿ ಬದಲಾವಣೆಯಲ್ಲಿ ಶೂನ್ಯದಿಂದ ಪುನರ್ನಿರ್ಮಿಸಿದ ಡೇಟಾಬೇಸ್ ವಿರುದ್ಧ ಚಲಿಸುತ್ತವೆ. ಅವು ವಿನ್ಯಾಸ ಚತುರವೆಂದು ಸಾಬೀತುಪಡಿಸಲು ಇಲ್ಲ. ಈ ನಿರ್ದಿಷ್ಟ ವಿನ್ಯಾಸದ ವೈಫಲ್ಯ ಮೌನವಾಗಿರುತ್ತದೆ, ಮತ್ತು ಮೌನ ವೈಫಲ್ಯಗಳಿಗಾಗಿ ಯಾರಾದರೂ ಅವುಗಳ ಪರ ಧ್ವನಿ ಎತ್ತಬೇಕಾಗುತ್ತದೆ ಎಂಬುದಕ್ಕಾಗಿ ಅವು ಇವೆ.

ಸಾಮಾನ್ಯ ವ್ಯಕ್ತಿಗೆ ಬೇರ್ಪಡಿಕೆ ಏನು ನೀಡುತ್ತದೆ

  • ಒಂದು ಗುಂಪು ಒಂದೇ ಇನ್‌ಸ್ಟಾಲ್‌ನಿಂದ ಹಲವು ಕಂಪನಿಗಳನ್ನು ನಡೆಸಬಹುದು, ಮತ್ತು ಒಂದರ ಮಾರಾಟಗಾರನಿಗೆ ಇನ್ನೊಂದರ ಗ್ರಾಹಕ ಎಂದಿಗೂ ಕಾಣುವುದಿಲ್ಲ — ನೀತಿಯಿಂದಲಲ್ಲ, ರಚನೆಯಿಂದ.
  • ಪಾಲುದಾರ ಕಾರ್ಯಕ್ರಮ, ಪ್ರಾಂಪ್ಟ್‌ಗಳ ಸಂಗ್ರಹ, ಗ್ರಾಹಕನ ಮೇಲಿನ ಹಕ್ಕು: ಎಲ್ಲವೂ ಪ್ರತಿ ಕಂಪನಿಗೆ ವ್ಯಾಪ್ತಿಗೊಳಪಟ್ಟಿರುತ್ತವೆ, ಆದ್ದರಿಂದ ಒಂದು ಟೆನೆಂಟ್‌ನ ಸಂರಚನೆ ಎಲ್ಲರದ್ದಾಗಿ ಬದಲಾಗಲು ಸಾಧ್ಯವಿಲ್ಲ.
  • ಮಾಹಿತಿ ಅಳಿಸುವ ವಿನಂತಿಯನ್ನು ಹಂಚಿದ ರಾಶಿಯಾದ್ಯಂತಲ್ಲದೆ ಒಂದು ಗಡಿಯೊಳಗೆ ಗೌರವಿಸಲಾಗುತ್ತದೆ, ಇದೇ ಪ್ರಾಮಾಣಿಕವಾಗಿ ಉತ್ತರಿಸಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಮಾಡುತ್ತದೆ.
  • ಮತ್ತು ಯಾರೂ ಅದನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಬೇಕಿಲ್ಲ. ಇದೇ ಮುಖ್ಯ ಅಂಶ — ನೆನಪಿಟ್ಟುಕೊಳ್ಳುವುದನ್ನು ಅವಲಂಬಿಸಿದ ಖಾತರಿ ಖಾತರಿಯಲ್ಲ.

ಡೇಟಾಬೇಸ್‌ಗಳ ಬಗ್ಗೆ ಅಲ್ಲದ ಇನ್ನೊಂದು ಸಾಲು

ಕುಟುಂಬದ ಪ್ರತಿಯೊಂದು ಸಹೋದರ ಸೇವೆಯು ತನ್ನದೇ ಆದ ಹೆಸರಿಸಿದ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಹೊಂದಿದೆ. ಯಾವುದೂ ಹಂಚಿದ ಒಂದರೊಂದಿಗೆ ಮಾತನಾಡುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಯಾವುದೇ ಸೇವೆ ಆಕಸ್ಮಿಕವಾಗಿ ಇನ್ನೊಂದರಂತೆ ವರ್ತಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ — ಒಮ್ಮೆ ಹಂಚಿದ ಟೋಕನ್ ಇದ್ದು ಅದರಿಂದ ಸಂತೋಷಪಡದೇ ಇದ್ದ ಅನುಭವದಿಂದ ನೇರವಾಗಿ ಬಂದ ಒಂದು ಸಣ್ಣ ಶಿಸ್ತು.

ಇದು ಡೇಟಾಬೇಸ್ ನಿಯಮದಷ್ಟೇ ಒಳಗುನವೆ. ತಪ್ಪಾದ ಕೆಲಸವನ್ನು ನಿರುತ್ಸಾಹಗೊಳಿಸುವ ಬದಲು ಅಸಾಧ್ಯವಾಗಿಸಿ, ನಿಮ್ಮ ಗಮನವನ್ನು ಎಚ್ಚರಿಕೆಯ ಬದಲು ಗ್ರಾಹಕರ ಮೇಲೆ ಖರ್ಚು ಮಾಡಿ.

ಗಡಿಅಪ್ಲಿಕೇಶನ್‌ನ ಕೆಳಗೆ
  • 126 ಟೇಬಲ್‌ಗಳುಪ್ರತಿಯೊಂದೂ ತನ್ನ ಟೆನೆಂಟ್ ಹೊಂದಿದೆ, ಪರಿಶೀಲನೆ ಕಡ್ಡಾಯವಾಗಿ ಆನ್ ಆಗಿದೆ.
  • 272 ನೀತಿಗಳುಪ್ರತ್ಯೇಕವಾಗಿ ಬರೆಯಲಾಗಿದೆ, ಆದ್ದರಿಂದ ಪ್ರತಿಯೊಂದನ್ನೂ ಒಬ್ಬ ವ್ಯಕ್ತಿ ಓದಿದ್ದಾರೆ.
  • 3942 ಪರೀಕ್ಷೆಗಳುಪ್ರತಿ ಬದಲಾವಣೆಯಲ್ಲಿ, ಶೂನ್ಯದಿಂದ ಪುನರ್ನಿರ್ಮಿಸಿದ ಡೇಟಾಬೇಸ್ ವಿರುದ್ಧ.
  • 40 ಪೂರ್ವನಿಯೋಜಿತ ಟೆನೆಂಟ್‌ಗಳುವ್ಯಾಪ್ತಿ ಇಲ್ಲದ ವಿನಂತಿ ಎಂದಿಗೂ ಡೇಟಾವನ್ನು ತಲುಪುವುದಿಲ್ಲ.

ಲೈವ್ ಬಿಲ್ಡ್ ಮೇಲೆ ಅಳೆಯಲಾಗಿದೆ

“ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಯಾವಾಗಲೂ ಕಂಪನಿಯ ಮೇಲೆ ಫಿಲ್ಟರ್ ಮಾಡುತ್ತದೆ.”

ಆ ವಾಕ್ಯದಲ್ಲಿ 'ಯಾವಾಗಲೂ' ಎಂಬ ಪದ ಬಹಳ ಭಾರ ಹೊರುತ್ತಿದೆ.

ಗಡಿಯನ್ನು ಡೇಟಾಬೇಸ್‌ನೊಳಗೆ ಇಳಿಸಿದರೆ, ಮರೆತ ಒಂದು WHERE ಷರತ್ತು ಇತರರ ಗ್ರಾಹಕರ ಬದಲು ಏನನ್ನೂ ಹಿಂತಿರುಗಿಸುವುದಿಲ್ಲ. ಖಾಲಿ ಪರದೆ ಒಂದು ಅಜಾಗೃತ ಪರಿಚಯಕ್ಕಿಂತ ಉತ್ತಮ ವೈಫಲ್ಯ.

ಹಲವು ಬ್ರಾಂಡ್‌ಗಳನ್ನು ನಡೆಸುವ ಗುಂಪುಗಳಿಗೆ →