Tabel dengan banyak (80+) bidang atau beberapa tabel satu-ke-satu di Symfony?

Saya menggunakan Symfony1.4, jadi pertanyaan saya berkaitan dengan desain database dan Doktrin.

Saya memiliki objek yang memiliki sekitar 80 karakteristik. Pengguna harus mengisi semuanya dalam 4 langkah, sehingga ciri-ciri tersebut dapat dibagi menjadi 4 kelompok. Setiap grup akan memiliki ~20 bidang. Beberapa di antaranya harus diwajibkan dan lainnya tidak.

Pertama, saya berjuang untuk membuat 1 tabel utama dan 3 tabel anak satu-ke-satu, karena dalam hal ini symfony dapat membuat formulir yang berbeda dengan bidang yang diperlukan kumpulan database.

Lalu, saya menemukan diskusi ini. Jika saya mengikuti saran untuk memiliki semua bidang dalam satu tabel, saya harus membuat 4 formulir berbeda secara manual dan mengontrol bidang yang diperlukan.

Saya juga bertanya-tanya, metode mana yang lebih efektif di Symfony. Misalnya, keempat tabel tidak akan pernah digabungkan - maksimal 2 tabel.


person Trike    schedule 06.04.2011    source sumber


Jawaban (1)


Tidak tahu tentang Symfony, tapi saya akan berbicara dari perspektif desain database. Jika, seperti yang telah Anda katakan, keempat tabel tidak akan pernah digabungkan, memisahkannya mungkin merupakan ide bagus tergantung pada kueri dan ukuran total tabel. Pengguna biasanya merupakan tabel yang tidak terlalu besar, sehingga kinerja tidak menjadi masalah dan kemudahan pengembangan menjadi lebih penting. Tetapi jika Anda ingin memiliki beberapa GB pengguna...

Cara lain untuk mengatasi masalah ini: Jika hubungan antar tabel selalu satu-ke-satu (catatan harus ada di semua tabel), saya akan cenderung menggunakan pendekatan tabel semua dalam satu. Jika beberapa tabel bisa melewatkan satu catatan, pemisahan menjadi lebih menarik.

Anda juga dapat menyelesaikan ini dengan sesuatu seperti PostgreSQL hstore (atau yang setara dengan RDBMS Anda).

person Diogo Biazus    schedule 06.04.2011