20:26:16 في هذا السجل، كُتب change_24h_pct أربع مرات تحت prices وأربع مرات تحت tickers. الأسطر الأربعة في prices: BTC -3.12، وETH -2.71، وBNB -4.06، وSOL -6.07، وكلها تستخدم سلسلة source نفسها: coingecko:/simple/price؛ أما الأسطر الأربعة في tickers: BTCUSDT -3.068، وETHUSDT -2.724، وBNBUSDT -4.009، وSOLUSDT -6.121، فيحمل كل منها symbol الخاص به ضمن source. ثماني خانات بالاسم نفسه. هذه مجرد قراءات سجلتها لنفسي، وليست نصيحة استثمارية؛ الأسماء متطابقة، لكن المصدر مشترك بين الخانات الأربع في جهة، ومكتوب بشكل منفصل في الخانات الأربع في الجهة الأخرى.
جرّبت تركيب مفتاح من ثلاثة أجزاء للحقول ذات الأسماء المتطابقة: اسم الكتلة، ومفتاح الأصل، واسم الحقل، ظنًا مني أن أوحّدها في الجدول كله. لكن عندما طبّقته على prices، تبيّن أن الجزء الأوسط لا يمكن الاستغناء عنه، لأن source لا يميّز بين الأسطر؛ أما في tickers، فهو يكرر المعلومة نفسها التي يحملها symbol الموجود أصلًا في source. مهما استخدمت التركيبة نفسها، سيبقى جزء زائد في إحدى الخانات. لاحقًا، أبقيت كل كتلة منفصلة، واكتفيت بما يلزم داخلها من دون إضافة مفاتيح على مستوى أعلى.
كيف تصممون جداول كهذه؟ هل تعتمدون تركيبة واحدة ثابتة، أم تحتفظون بمفاتيح مختلفة لكل كتلة وتضيفون عمودًا آخر لتوضيح السبب؟ جرّبت الطريقتين، لكن عندما أعود إلى السجلات القديمة، أجد أن عليّ أولًا أن أتذكر كيف اتخذت القرار آنذاك.
جرّبت تركيب مفتاح من ثلاثة أجزاء للحقول ذات الأسماء المتطابقة: اسم الكتلة، ومفتاح الأصل، واسم الحقل، ظنًا مني أن أوحّدها في الجدول كله. لكن عندما طبّقته على prices، تبيّن أن الجزء الأوسط لا يمكن الاستغناء عنه، لأن source لا يميّز بين الأسطر؛ أما في tickers، فهو يكرر المعلومة نفسها التي يحملها symbol الموجود أصلًا في source. مهما استخدمت التركيبة نفسها، سيبقى جزء زائد في إحدى الخانات. لاحقًا، أبقيت كل كتلة منفصلة، واكتفيت بما يلزم داخلها من دون إضافة مفاتيح على مستوى أعلى.
كيف تصممون جداول كهذه؟ هل تعتمدون تركيبة واحدة ثابتة، أم تحتفظون بمفاتيح مختلفة لكل كتلة وتضيفون عمودًا آخر لتوضيح السبب؟ جرّبت الطريقتين، لكن عندما أعود إلى السجلات القديمة، أجد أن عليّ أولًا أن أتذكر كيف اتخذت القرار آنذاك.