Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Simpan beberapa alamat email dalam database untuk tipe pengguna yang berbeda

Anda juga memiliki tabel email yang memiliki kunci asing yang berupa system_id, account_id, atau customer_id. Kemudian Anda dapat memiliki bidang yang menentukan jenis kunci asing itu. Strategi lain yang lebih rumit adalah tetap memiliki tabel email tetapi tidak ada kunci asing. Tabel lain yang Anda sebut email_relation terdiri dari email_id dan kunci asing. Dengan begitu Anda dapat menggunakan satu alamat email untuk ketiga tabel.

Contoh penggunaan dua tabel

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

jika Anda ingin tabel pelanggan menyertakan alamat email

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

Jika Anda ingin semua email ke sistem, Anda juga bisa

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. cURL dan PHP menampilkan 1

  2. Kesalahan PHP (MySQL):Peringatan:mysql_num_rows() mengharapkan parameter 1 menjadi sumber daya

  3. mysql, kolom utf-8:bagaimana cara memilih hanya case-sensitive?

  4. desain database untuk kuis dengan bahasa yang berbeda

  5. Apakah mungkin untuk memanggil prosedur tersimpan dalam tampilan?