एक डीबी मॉडलिंग के बारे में - mysql, sql, डेटाबेस, डेटाबेस-डिजाइन

मैं एक टेबल बनाना चाहता हूं जो उपयोगकर्ता के संपर्कों की सूची का प्रतिनिधित्व करता है, लेकिन प्रत्येक उपयोगकर्ता के पास संपर्कों की संख्या अलग-अलग हो सकती है ...

मेरे पास एक टेबल है उपयोगकर्ता कॉलम के साथ id_user, नोम, जानकारी

प्रत्येक समूह की आवश्यकता में ऐसे उपयोगकर्ता की आईडी होती है जो समूह के मालिक, अन्य उपयोगकर्ताओं के आईडी और एक दूसरे के उपयोगकर्ताओं के लिए अन्य पूर्णांक मान होते हैं।

तो, टेबल समूह कुछ ऐसा है

id_dono_do_grupo, id_user_1, id_user_2, .., id_user_N, valor_1, valor_2, .., valor_N

लेकिन यह एन बदल सकता है।

इस टेबल को मॉडल करने के बारे में कोई विचार? आपका बहुत बहुत धन्यवाद।

उत्तर:

जवाब के लिए 2 № 1

कुछ इस तरह:

  • (पी) प्राथमिक कुंजी का मतलब है
  • (एफ तालिका.column) का मतलब table.column के लिए विदेशी कुंजी है

सभी समूहों के लिए एक टेबल।

groups
id              unsigned int(P)
owner_id        unsigned int(F users.id)
name            varchar(50) // Vitor"s Group, Dan"s Group, etc.

आपके सभी उपयोगकर्ताओं के लिए एक टेबल।

users
id          unsigned int(P)
name        varchar(50)
info        varchar(50)

और आखिर में एक टेबल जो उपयोगकर्ताओं को समूहों में बांध रहा है। समूह के मालिक को निर्दिष्ट किया गया है groups टेबल तो यह users_groups तालिका आपको एक समूह के साथ जुड़े कई उपयोगकर्ता | मूल्य जोड़े देता है जैसा आप चाहते हैं।

users_groups
id          unsigned int(P)
user_id     unsigned int(F users.id)
group_id    unsigned int(F groups.id)
value       unsigned int // Or whatever data type the "value" is...

जवाब के लिए 2 № 2

इसे सही ढंग से मॉडल करने के लिए आपको दो टेबल होने चाहिए।

पहली तालिका को समूह के बारे में जानकारी स्टोर करना चाहिए, जिसमें मालिक के लिए एफके भी शामिल है।

दूसरी तालिका समूह की सदस्यता को स्टोर करना चाहिए। मूल रूप से कॉलम के लिए group_id तथा user_id


जवाब के लिए 0 № 3

आप एक मध्यस्थ तालिका चाहते हैं जिसे कुछ ऐसा कहा जाएगा user_per_group और यह केवल उपयोगकर्ता आईडी और समूह आईडी को स्टोर करता है ताकि आपके पास एक कोड में बिना किसी समूह में आपके कोड को बदलने के असीमित मात्रा हो।

अंगूठे के सामान्य नियम के रूप में, यदि आपकी तालिका में बहुत सारे कॉलम हैं, तो आप शायद कुछ गलत कर रहे हैं, खासकर यदि अधिकांश कॉलम विदेशी कुंजी हैं।

यहां एक एसक्यूएल फिल्ड मॉडलिंग है:

http://sqlfiddle.com/#!9/5179d/2


संबंधित सवाल
सबसे लोकप्रिय