Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

विभिन्न उपयोगकर्ता प्रकारों के लिए डेटाबेस में एकाधिक ईमेल पते संग्रहीत करें

आपके पास या तो एक ईमेल तालिका है जिसमें एक विदेशी कुंजी है जो या तो एक system_id, account_id, या customer_id है। फिर आपके पास उस विदेशी कुंजी के प्रकार को निर्दिष्ट करने वाला फ़ील्ड हो सकता है। एक और अधिक जटिल रणनीति यह होगी कि अभी भी ईमेल तालिका हो लेकिन कोई विदेशी कुंजी न हो। एक अन्य तालिका जिसे आप ईमेल_रिलेशन कहेंगे जिसमें ईमेल_आईडी और विदेशी कुंजी शामिल है। इस तरह आप तीनों तालिकाओं के लिए एक ई-मेल पते का उपयोग कर सकते हैं।

दो तालिकाओं के उपयोग का उदाहरण

system
--------
s1 
s2
s3

account
--------
a1
a2
a3

customer
--------
c1
c2
c3

email
------
e1 [email protected]
e2 [email protected]
e3 [email protected]
e4 [email protected]

email_relation
---------------
email_id     foreign_id      relation_type
e1           s1              system
e1           a1              account
e1           c1              customer
e2           c1              customer
e3           c2              customer
e4           a3              account
e4           c3              customer

यदि आप ई-मेल पते सहित ग्राहक तालिका चाहते हैं

select c.customer_id, e.email
from customer c
left join email_relation r on (r.foreign_id = c.customer_id and relation_type = 'customer')
left join email          e on (e.email_id    = r.email_id)
where r.email_id is not null

यदि आप किसी सिस्टम को सभी ई-मेल चाहते हैं तो आप

. भी कर सकते हैं
select e.email
  from email e
  join email_relation r on (r.email_id = e.email_id and relation_type = "system")
 where r.foreign_id = 1 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर से पैरामीटर में गुजरने वाली ADO .NET स्रोत क्वेरी को क्वेरी करने के लिए SSIS का उपयोग करना

  2. Microsoft SQL क्वेरी का उपयोग करके PHP को क्रमरहित करें

  3. जॉइन क्वेरीज़ बनाम मल्टीपल क्वेश्चन

  4. MySQL समूह द्वारा अधिकतम रिकॉर्ड का चयन

  5. सिंगल पेज वाली वेबसाइट के लिए बैक बटन