Saya membuat diagram konseptual [ya, saya tahu saya telah memasukkan atribut dan kunci - tetapi ini hanya bagi saya untuk mengkonsolidasikan apa yang saya lakukan saat belajar] - jadi tolong perlakukan itu sebagai Konseptual dengan fokus pada Hubungan dan tabel dan bukan cara diagram;)
Hambatan pikiran saya adalah: Saya mencoba memastikan cara terbaik untuk memodelkan hubungan Profil, Lokasi, dan Organisasi.
Pertama-tama, ATURAN:
- Satu atau lebih Profil dapat menjadi Anggota / Teman dari satu atau lebih Organisasi ; dan sebaliknya.
- Satu atau lebih Profil dapat menjadi Anggota / Teman dari Profil lain.
- Satu atau lebih Organisasi dapat menjadi Anggota / Teman dari Organisasi lain.
Teman dan Anggota berbeda, dalam hal itu, Teman seperti read-only dan Anggota [tergantung pada level] memiliki akses penuh untuk mengubah hal-hal.
Untuk memperumit hal-hal lebih lanjut, Lokasi memiliki seperangkat aturan yang lebih baik "lebih lanjut" misalnya Organisasi memiliki dua Lokasi , tetapi tergantung pada aturan Lokasi, Anggota [ Profil ] dari Organisasi tersebut mungkin memiliki akses penuh di satu Lokasi, tetapi membatasi akses di lain. [Maaf: Anda kemungkinan besar harus membuka gambar di jendela lain untuk ukuran tampilan yang lebih baik.]
Jadi seperti yang Anda lihat, konsep Profil dan Organisasi hampir sama, dan ini belum menjadi model konsep Teman dan Anggota [... yang saya bayangkan akan ditangani seperti tabel perantara saat ini dengan pengaturan Pemilik / Admin / Anggota / Teman dll dalam catatan]. Karenanya, mengapa saya memikirkan konsep berikut:
Lihat Opsi.2 pada gambar di atas: yang akan menghapus Tabel Organisasi dan Organisasi saat ini dan hubungannya, menggantinya dengan Tabel Organisasi Opsi.2 sebagai hubungan yang agak rekursif dengan Profil .
Saya kira inti masalahnya adalah apakah saya terlalu terprogram dengan Polimorfisme sehingga merugikan kesederhanaan dan fleksibilitas, membingungkan diri saya sepenuhnya dalam proses;)
Terima kasih atas pemikiran Anda sebelumnya, sangat dihargai - M :).
Diagram Revisi:
Menanggapi pertanyaan MDCCL:
- Ya, Profil terdiri dari satu Orang dan memiliki makna yang sama - meskipun ke mana tujuan Anda mengarah - saya yakin Anda benar: Organisasi dan Orang dapat menjadi subtipe Profil ; oleh karena itu, suatu Profil terdiri dari satu Orang, atau satu Organisasi.
- Satu Alamat Email per Profil.
- Iya. Seperti di atas, Organisasi setidaknya harus memiliki Alamat Email.
- Benar, satu alamat tetap.
- Itu adalah kemungkinan, tetapi jarang - meskipun dari apa yang saya pelajari - karena itu seseorang harus membuat model seperti itu untuk masa depan yang panjang dll, dan hanya untuk mengonfirmasi, Lokasi karena itu dapat dimiliki oleh lebih dari satu Orang.
Lokasi jelas merupakan entitas yang tidak terpisahkan di antara sebagian besar lainnya. Mungkin saya akan mengklarifikasi apa yang dapat dilakukan secara ringkas di sini, kemudian membiarkan Anda membaca jawaban saya yang lain yang semoga akan menyinggung penambahan bermanfaat untuk pertanyaan ini terlebih dahulu [ kemudian lihat jawaban saya ke # 6 di bagian akhir ];) Re: Pemilik Peran.
An **Organization** can be an Owner of zero or more **Locations**.
A Person can be an owner of zero of more Locations
[karena itu, seperti yang Anda duga sebelumnya; sederhananya, sebuah Profil dapat menjadi pemilik nol atau lebih Lokasi.Ya, Profil yang merupakan pemilik dari Lokasi bertanggung Peran Perizinan [super user]; sebuah Profil yang merupakan Admin dapat mengubah rincian tertentu dari lokasi , tetapi terutama membantu / mengedit rincian / data yang diberikan melalui semua lainnya Profil / s - ini terutama akan dipasok oleh 'Basic Anggota / s' dari kata Lokasi / s; yang meninggalkan Anggota Dasar , yang hanya dapat membaca semua detail Lokasi terkait dan menyediakan data yang harus diperiksa oleh Admin / Pemilik . Di luar ini, Profil apa pun[Organisasi / Orang] sangat mirip dengan Anggota Dasar 'read-only' - sebut saja mereka Tamu - tetapi hanya jika Lokasi ditetapkan sebagai Publik [dan bukan Pribadi ], meskipun mereka tidak dapat memberikan input seperti Anggota Basic dapat .
- Benar.
- Intuisi Anda luar biasa! Ya,
it is foreseen that a single Location could contain one to many LocationTypes
- untuk memperumit masalah - diperkirakan bahwa masing-masing LocationTypes tersebut dapat memiliki berbagai izin untuk Profil yang terkait dengan Lokasi 'Induk'; di mana, izin akan disaring dari Lokasi ke LocationType / s [seperti izin keamanan folder OS]. Saya perhatikan melalui diagram Anda, Anda mungkin merujuk untuk mengetik lebih banyak sebagai deskripsi? - Iya.
- Lihat 12.
- Benar, kemampuan Profile1 [Orang atau Organisasi] untuk bertindak berdasarkan Profile2 [Orang atau Organisasi] yang dimiliki Lokasi [jika mereka Teman / Anggota dengan izin yang benar] adalah yang terpenting.
- Sangat masuk akal - a) setuju. b) setuju. c) Ya, hmm? ... Mungkin itu harus sama dengan Profil [orang] ke Profil [orang] = Teman . Apa pun deskripsi, itu akan berputar di sekitar Lokasi , karena Organisasi akan bertindak atas Lokasi Organisasi lainnya ; meskipun secara semantik, saya ragu ada Organisasi yang ingin tampil patuh sebagai 'Anggota' dari Organisasi Lokasi itu untuk bisa melakukannya, 'tidak peduli seberapa bagus penyebabnya.'
[6]. Ini masih sedikit abu-abu bagi saya, tapi begini ... Mungkin merugikan saya, kesamaan antara hubungan Anggota / Teman sangat dekat sehingga saya berpikir untuk menggabungkan mereka; di belakang dengan diagram dan interpretasi Anda, tampaknya Anda mungkin benar untuk membuatnya terpisah [ saya akan membedakan hubungan tunggal melalui properti enum: Pemilik / Admin / Anggota / Teman ]. Konsep Anda sebagai misalnya: Lokasi yang Dimiliki oleh Organisasi akan memiliki nol hingga banyak Profil [Orang atau Organisasi] menindaklanjutinya, meskipun harus ada perbedaan yang jelas antara bagaimana Profil bertindak atas lokasi melalui hubungannya [Anggota atau Teman ] dilambangkan melalui Peran.So perhaps, the default relation between any Profile is Friend [much like Guest at Answer#7], enabling them to view the read-only Location data and msg/email the Location Owner/Admin - but not allow them to receive Location updates, news, etc., as a Member would.
sumber
Jawaban:
Sangat menyenangkan bahwa Anda meluangkan waktu untuk memahami, mengklasifikasikan dan memodelkan data yang Anda hadapi karena, dari pengalaman pribadi saya, semua ini membuat seluruh proses pengembangan lebih mudah dan sangat fleksibel untuk perubahan di masa depan. Dan saya cukup yakin bahwa Anda juga sudah mengetahui hal ini.
Model data awal dan asumsi aturan bisnis
Saya mendefinisikan daftar aturan bisnis yang telah saya asumsikan setelah membaca pertanyaan Anda dan memeriksa dengan cermat diagram Anda, untuk menjelaskan pemahaman saya tentang spesifikasi Anda. Setelah mendefinisikan daftar tersebut, saya mendapatkan model data IDEF1X [1] yang saya putuskan untuk unggah sebagai dokumen .PDF di platform eksternal (Dropbox), karena karena formatnya model data ini tidak cocok dengan gambar yang disematkan. Kedua instrumen ini akan berguna sebagai referensi untuk beberapa poin penting yang saya sebutkan di bawah ini di bagian berjudul Aspek untuk diselesaikan agar dapat terus bergerak maju .
Pertama, ini ...
Karena hanya itu, pendahuluan, menganggapnya sebagai sarana membantu kami untuk mencapai model data akhir yang diinginkan.
Aturan bisnis yang diasumsikan
Model data awal tersebut berasal dari kumpulan aturan bisnis (disimpulkan dari pertanyaan Anda) yang akan saya sebutkan sebagai berikut:
Organisasi dan profil
Catatan yang
Profile
saat ini dipahami sebagai sinonim untukPerson
.Organization
adalah teman satu-ke-banyakProfiles
.Organization
adalah teman satu-ke-banyakOrganizations
.Organization
adalah anggota satu-ke-banyakOrganizations
.Profile
adalah anggota satu-ke-banyakOrganizations
.Profile
adalah teman satu-ke-banyakProfiles
.Profile
adalah anggota satu-ke-banyakProfiles
.Lokasi dan alamat
Organization
memiliki satu-ke-banyakLocations
.Location
diklasifikasikan berdasarkan satu ke banyakLocationTypes
( hanya satu pada titik waktu tertentu).Location
mungkin memiliki satu-ke-banyakAddresses
( satuPhysical
, satu untukShipping
, satu untukBilling
, atau satu yang melayani semua tujuan tersebut, atau satu yang menggabungkan dua tujuan dan yang lain hanya melayani satu dari mereka).Sebuah
Address
dapat disimpan oleh satu-ke-banyakProfiles
atau, dengan kata lain, sebuahProfile
terus satu-ke-banyakAddresses
.Sebuah spesifik
Address
dapat digunakan oleh satu-ke-banyakProfiles
(melayani sebagaiPhysical
untuk satuProfile
, yang digunakan untukBilling
oleh satu yang berbeda , dll). Jadi, sebuahAddress
karya serupa untukLocations
danProfiles
.Address
dapat, pada saat yang sama , bertipePhysical
,Shipping
danBilling
.Lokasi dan peran
Location
membuka satu-ke-banyakRoles
.Role
dapat dilakukan dalam satu-ke-banyakLocations
.Profile
(setelah ditetapkan sebagaiMember
aOrganization
) dapat melakukan satu-ke-banyakRoles
, dalam satu-ke-banyakLocations
(tetapi hanya satu spesifikRole
di masing-masingLocation
pada titik waktu tertentu, yaitu, tidak pernah dua atau lebihRoles
pada waktu yang sama ).Aspek yang harus diselesaikan agar terus bergerak maju
Untuk terus maju dalam resolusi model data Anda, berikut adalah daftar poin yang relevan, setelah kami mengatasinya, akan membantu kami untuk mencapai tujuan ini:
Saya berasumsi bahwa istilah
Profile
dalam konteks Anda memiliki makna yang serupa (atau sama) denganPerson
, tetapi mungkin sedikit berbeda. Dengan cara ini, akankah Anda mengatakan bahwa, dalam skenario Anda, entitasOrganization
danPerson
merupakan subtipeProfile
?Dapatkah
Profile
(atauPerson
) sendiri satu-ke-banyakEmailAddresses
, atau merupakanProfile
(atauPerson
) tetap untuk tepat satuEmailAddress
?Apakah Anda ingin memberikan kemungkinan untuk
Organization
dihubungi melaluiTelephone
danEmail
, atau Anda ingin membatasi itu hanya mungkin untukProfile
(atauPerson
)?Saya berasumsi bahwa a
Location
diperbaiki ke salahAddress
satu tipePhysical
, apakah ini benar?Apakah mungkin untuk
Location
dibagikan oleh satu-ke-banyak berbedaOrganizations
atau , jika tidak,Location
dapat dimiliki hanya oleh satuOrganization
?Anda telah menyatakan melalui komentar bahwa fakta menjadi
Member
dan aFriend
adalah sama. Seperti yang dapat Anda lihat dalam model data pendahuluan yang saya usulkan, saya mengikuti Anda spesifikasi asli dan menggambarkan semua kemungkinan kombinasi keanggotaan dan persahabatan antaraOrganization
danProfile
(atauPerson
) di entitas yang berbeda karena saya pikir itu dapat membantu dalam upaya menentukan yang terbaik yang mungkin. struktur untuk bagian skenario Anda. Dalam arti ini:an Organization is a Member of another Organization
memiliki efek yang berbeda dari pernyataan yanga Profile (or Person) is a Member of an Organization
berkaitan dengan entitas yang dipanggilLocation
.Role
dariOwner
hanya berlaku untukOrganization
dan, bagi saya, berlakuRoles
untukProfile
(atauPerson
), di dalamLocation
adalahAdmin
danMember
. Apa yang Anda pikirkan tentang semua ini? Karena Anda berhubungan langsung dengan aturan bisnis yang berlaku untuk situasi Anda, Anda perlu memberi tahu saya jika asumsi saya benar.Bisakah
Profile
(atauPerson
) bermain berbedaRoles
di dalam yang samaLocation
? yaitu, dapatkahPerson
, pada saat yang sama,Admin
dan jugaMember
dari yang samaLocation
? Apa aturan dalam hal ini?Saya pikir hal yang sama
Profile
(atauPerson
) dapat bermain berbedaRoles
di berbedaLocations
. Misalnya: Yang spesifikProfile
(atauPerson
) adalah "Admin" diLocation
"1", dan yang sama iniProfile
(atauPerson
) adalah "Member
" diLocation
"2", pada saat yang sama. Apakah saya benar?Apakah mungkin bagi orang tertentu
Location
untuk memiliki perbedaanLocationTypes
pada saat yang sama, atau apakah seseorangLocation
ditetapkan untuk memegang tepat satuLocationType
?Apakah atribut tersebut
Organization.Website
mewakili alamat situs web organisasi tertentu, seperti "dba.stackexchange.com"?Jika
Profile
"1" (dipahami sebagaiPerson
) adalahMember
(atauFriend
) dariProfile
"2", apakah mungkin bagiProfile
"1" untuk melaksanakan suatuRole
dalam yangLocation
dimiliki olehProfile
"2"? Saya menganggap bahwa skenario seperti itu hanya berlaku untuk hubungan antaraOrganization
danMember
Person
, jadi apa yang Anda pikirkan?Dengan cara yang sama, jika
Organization
"1" adalahMember
(atauFriend
) dariOrganization
"2", apakah mungkin bagiOrganization
"1" untuk melakukan aRole
diLocation
milikOrganization
"2"? Sekali lagi, saya pikir skenario semacam ini hanya berlaku untuk hubungan antara aOrganization
dan aMember
Person
, apakah ini benar?Dalam hal ini - ketika saya menulis pertanyaan ini - saya pikir masuk akal untuk mengatakan bahwa hanya ada tiga jenis hubungan yang melibatkan
Organizations
danPersons
, dan kita dapat mendefinisikan:Organization
dan aPerson
sebagai "Membership
".Person
dan yang lain berbedaPerson
sebagai "Friendhip
".Organization
dan orang lain yang berbedaOrganization
.Apakah mungkin untuk
Organization
menjadiFriend
(atauMember
) dari satu-ke-banyak yang berbedaOrganizations
pada saat yang sama? Atau hanya mungkin bagi seseorangOrganization
untuk hanya memiliki hubungan dengan orang yang berbeda secara eksklusifOrganization?
Model data berturut-turut menggambarkan kemajuan pertama
Memperhatikan tanggapan dan resolusi Anda terhadap aspek-aspek yang tertunda yang telah saya sebutkan di atas, saya telah membuat yang berikut ...
Meskipun saya belum merasa cukup nyaman dengan itu, model data baru ini mengungkapkan aturan bisnis berikut:
Profile
adalah salah seorangOrganization
atau sebuahPerson
. [2]Profile
mungkin merupakan teman persembahan satu-ke-banyakFriendProfiles
, danProfile
mungkin merupakan teman satu-ke-banyakFriendProfiles
. [3]Location
dapat terdiri dari satu-ke-banyakLocations
. [4]Jawaban untuk komentar spesifik Anda selanjutnya
Ya, itu adalah perbandingan yang baik, meskipun saya tidak akan menyebutnya pemisahan perhatian (yang, tentu saja, prinsip dasar dalam pemrograman aplikasi dan desain), karena istilah ini umumnya berkaitan dengan tahap pengembangan aplikasi dan kami saat ini menemukan diri kami di tahap memahami data dan merancang struktur logisnya.
Dari pengalaman pribadi saya, saya menganggap bahwa fase ini berkaitan dengan menempatkan hal-hal penting ke dalam keseluruhan konteksnya, itu berkaitan dengan melihat asosiasi yang ada di antara entitas yang berbeda yang relevan dalam skenario minat tertentu, dan kemudian menggambarkan hal-hal ini dalam model data. Dalam kasus khusus yang Anda komentari,
Address
entitas mungkin memiliki berbagai jenis koneksi dengan entitas lain, satu denganProfile
dan yang berbeda denganLocation
.Dan, ya, ketika sesuatu tidak terasa benar atau alami , itu mungkin merupakan pertanda bahwa seseorang perlu lebih berupaya untuk memahami data terkait. Dengan cara ini,
Address
entitas adalah salah satu hal yang saya anggap perlu lebih diperhatikan, karena saya berpikir bahwa hubungan antara aProfile
dan aAddress
dapat ditangani melaluiLocation
entitas (karena setiap orangLocation
harus memiliki setidaknya satu fisikAddress
), oleh karena itu kami dapat memberhentikanProfileAddress
entitas asosiatif yang digambarkan dalam model terbaru, tetapi Anda harus terus menganalisa poin-poin ini dan memberi tahu saya ide-ide Anda.Ya, itu adalah komentar yang sangat cerdik dari Anda, karena IDEF1X merekomendasikan penggunaan nama - nama peran untuk mendenominasi KUNCI LUAR NEGERI, untuk menangkap makna atribut tersebut sesuai dengan entitas di mana ia digunakan. Perlu juga dicatat bahwa ini juga sangat terkait dengan konsep migrasi kunci primer . Faktanya, penggunaan nama-nama peran mendahului IDEF1X, karena nama aslinya disajikan oleh Dr. EF Codd dalam teks seminalnya tahun 1970. Dengan cara ini, orang dapat dengan jelas melihat kesetiaan yang dipertahankan oleh standar IDEF1X terhadap model relasional .
Selain detail yang sudah dijelaskan di atas tentang
Address
entitas, saya tidak yakin apakah yangRoles
dilakukan oleh yang diberikanProfile
dalam tertentuLocation
setara denganOrganization
atauPerson
. Dari sudut pandang saya, yangPerson
pertama harus dikaitkan denganOrganization
, dan kemudian iniOrganization
akan menunjuk mengatakanPerson
untuk melakukanRole
khususnyaLocation
, tetapi Anda tahu skenario lebih baik, sehingga aturan ini mungkin tidak perlu. Dalam hal ini, saya akan bersikeras tentang fakta bahwa akan sangat membantu bagi saya untuk mengetahui gambaran kontekstual atau makna bahwa pengguna masa depan struktur data ini memberi untukOrganization
,Profile
, danLocation
, tapi saya mengerti bahwa ini dapat dianggap informasi rahasia, jadi ini akan menjadi batasan.Dengan struktur saat ini, sepertinya semua orang (
Organization
atauPerson
) dapat berhubungan dengan siapa saja (lagi,Organization
atauPerson
) dan dapat / melakukan apa saja (Role
) di mana saja (Location
) tetapi, perharps, ini adalah tepat apa yang Anda dan pengguna harapkan dari database ini , untuk itu Anda akan memberikan batasan yang jelas, tentu saja. Jika ini masalahnya, maka kami hampir memberikan solusi akhir. Karena, tentu saja, pendapat Anda menentukan dalam situasi ini, Anda juga harus menganalisa ide-ide ini dan kemudian biarkan saya tahu kesimpulan Anda sehingga kami dapat mengambil langkah-langkah terakhir.Kemajuan kedua yang layak
Sayangnya, komunikasi berhenti beberapa minggu yang lalu, saya kira karena komitmen kerja yang harus Anda penuhi, yang benar-benar masuk akal. Saya akan jauh lebih puas jika kami telah mengembangkan model yang lebih stabil dan kuat tetapi, karena interaksi kami sebelumnya, saya dapat berasumsi bahwa saya dapat mengarahkan Anda ke arah yang benar.
Selain apa yang telah disajikan dalam proses tanya jawab ini, saya menganggap bahwa memberikan perkembangan baru dari model data sebelumnya dapat membantu bagi pencari lain dengan masalah yang sama. Jadi, saya telah membuat ...
Organisasi dan Profil Model Data Awal - Kemajuan Kedua
Seperti dapat dilihat dalam model data seperti itu, saya telah menghapus hubungan banyak-ke-banyak yang telah saya gambarkan dalam model sebelumnya antara
Profile
danAddress
, karena yang diberikanProfile
sudah terkait dengan satu-ke-banyakAddresses
melalui yang dimilikinyaLocations
.Perubahan lain yang diilustrasikan dalam kemajuan baru ini adalah kenyataan bahwa sekarang termasuk kemungkinan bahwa suatu pemberian
Location
dapat dimiliki oleh satu-ke-banyakProfiles
. Akibatnya, saya telah mengubahLocation
KUNCI UTAMA (dengan mengabaikanLocationOwnerProfileId
atribut) dan kemudian menambahkan entitas asosiatif ( banyak-ke-banyak ) yang berhubunganProfile
denganLocation
.Catatan
1. IDEF1X adalah teknik pemodelan data yang sangat direkomendasikan yang didefinisikan sebagai standar pada bulan Desember 1993 oleh Institut Nasional Standar dan Teknologi ( NIST ).
2. Ini adalah kejadian dari kluster subtipe tipe (super) . Jika Anda tertarik, inilah jawaban di mana saya berurusan secara lebih rinci dengan hubungan semacam ini.
3. Contoh hubungan hierarkis banyak-ke-banyak , dan sangat mirip dengan struktur yang memberikan solusi pasti untuk "Masalah Eksplorasi Bagian" . Solusi semacam itu, tentu saja, diperkenalkan oleh Dr. Edgar Frank Codd dalam makalahnya tahun 1970 yang sangat berpengaruh “Model Data Relasional untuk Bank Data Bersama Besar” .
4. Dengan demikian, ini adalah contoh dari hubungan hierarkis satu-ke-banyak (atau banyak-ke-satu) .
sumber
Saya pikir Anda mencoba untuk menggabungkan konsep-konsep dari pemodelan objek dan konsep-konsep dari pemodelan data dengan cara yang tidak membantu Anda untuk memperjelas pemahaman Anda sendiri tentang masalah tersebut. Saya harap saya bisa membersihkan sedikit kekacauan tanpa terlalu banyak bertele-tele.
Model relasional, dengan demikian, tidak mendukung pewarisan, apalagi polimorfisme. Ini berarti bahwa pola desain yang agak khusus harus digunakan ketika memodelkan situasi kehidupan nyata yang mudah ditangani oleh pewarisan dan polimorfisme dalam model objek. Lebih lanjut tentang pola desain khusus nanti.
Ketika model ER pertama kali dikembangkan, itu seharusnya menjadi alternatif implementasi agnostik untuk pemodelan relasional. Pada awalnya, itu tidak memiliki warisan seperti apa pun. Tetapi beberapa waktu di tahun 1980-an atau 1990-an, model ini diperluas untuk memberikan beberapa kemampuan ekspresif yang sama yang Anda dapatkan dengan warisan. Ini dikenal sebagai "model extended ER", tetapi untuk semua tujuan praktis, model ER saat ini mencakup fitur EER.
Satu fitur EER menggunakan nama "generalisasi / spesialisasi". Anda dapat mencari dan membaca konsep ini di web. Gen-spec menyediakan banyak kemampuan ekspresif yang sama yang disediakan oleh kelas dan subclass dalam model objek. Namun, Gen-spec tidak berurusan dengan masalah seputar desain tabel relasional untuk situasi gen-spec. Lebih lanjut tentang itu nanti.
Dalam pemodelan ER, hubungan selalu melibatkan entitas yang sama. Karenanya, hubungan pertemanan antara suatu organisasi dan suatu profil tidak sama dengan hubungan pertemanan antara suatu profil dan profil lainnya. Dua hubungan membutuhkan nama yang berbeda. Anda hanya akan mengikat diri sendiri dalam simpul jika Anda tidak mengikuti aturan ini.
Entah itu, atau Anda harus datang dengan entitas umum yang Organisasi, Profil, dan mungkin Lokasi semua spesialisasi. Saya tidak mengerti kasus Anda dengan cukup baik untuk membantu Anda.
Selanjutnya, saya perhatikan bahwa Anda menggabungkan model relasional dan model ER Anda menjadi satu model. Sebagian besar arsitek database berpengalaman melakukan ini. Tapi saya menyarankan Anda untuk menjaga dua model terpisah (meskipun berdamai satu sama lain) sampai Anda memperoleh kemahiran.
Akhirnya, bagaimana seseorang mendesain tabel relasional yang mewakili situasi gen-spec? Coba cari dua pola desain ini "Class-table-inheritance" dan "Single-Table-Inheritance". Ada dua tag untuk ini lebih dalam di Stackoverflow. Ada juga beberapa presentasi pola yang cukup bagus di web. Saya terutama menyukai perawatan Martin Fowler. Dia tampaknya tahu bagaimana pemodel objek berpikir. Semoga ini membantu.
sumber