Nah, ini adalah salah satu area yang masih mengundang banyak diskusi. Seperti yang dikatakan beberapa orang [siapa? - pikir itu Atwood antara lain, tetapi tautan lolos dari saya], aplikasi yang dapat melakukan segalanya telah dibuat; itu disebut C. Apa yang ingin Anda lakukan hampir mendekati area 'terlalu umum', meskipun saya dapat melihat nilai dari tidak membutuhkan seorang programmer setiap kali aturan bisnis berubah.
Jika saya harus menerapkan sistem seperti itu, saya kira saya akan mencoba dan memecahnya menjadi domain. Anda telah melakukan pekerjaan yang relatif baik dengan tabel kedua. Cukup normalkan itu ke dalam domain terpisah yang digunakan untuk menggabungkan aturan bisnis. Anda membuat aturan bisnis yang terdiri dari 1 atau banyak kendala OR-ed bersama-sama. Setiap kendala membutuhkan properti yang dibatasi dengan operator terhadap suatu istilah. Istilah bisa jadi rumit, karena bisa berupa apa saja mulai dari properti hingga fungsi, hingga fungsi majemuk. Mungkin paling mudah untuk memeriksa aturan bisnis Anda untuk melihat apa yang Anda butuhkan. Mulailah dengan, katakanlah, properti, boolean, dan hal-hal biasa seperti 'SEKARANG'.
Jadi skema itu sendiri, misalnya, terdiri dari rules
, yang berisi beberapa constraints
(manfaat yang jelas adalah Anda dapat mengikat ini ke [grup pengguna/penawaran/rentang waktu/domain lain] yang Anda inginkan). Ini, pada gilirannya, terdiri dari properties
, yang akan dibandingkan dengan salah satu operators
(tabel referensi sebagian besar sehingga Anda dapat memasukkan nama deskriptif khusus untuk non-programmer, tetapi Anda dapat memilih untuk memasukkan fungsi khusus di dalamnya di beberapa titik) dan, tentu saja salah satu terms
. Bagian terakhir adalah yang paling rumit, jadi Anda mungkin harus mengkualifikasikannya dengan ID di term_types
jadi Anda akan tahu apakah Anda membandingkan dengan properti atau fungsi lain. Anda juga dapat VARCHAR
itu dan buat bidang dengan PHP, yang seharusnya tidak terlalu sulit, mengingat bagaimana Anda memiliki semua opsi di properties
dan/atau functions
.
Ini adalah sistem yang sangat terbuka (dan mungkin ada cara yang lebih baik untuk melakukannya), jadi mungkin tidak layak dilakukan kecuali Anda tahu bahwa Anda akan memerlukan tingkat dinamisme yang tinggi dalam aturan bisnis.