bagaimana cara membuat bidang yang hanya menerima nilai unik?
<p>saya menggunakan modul <a href="http://drupal.org/project/field\_collection">field collection</a> karena saya memiliki hubungan yang rumit antara field, dan saya telah mencoba mengintegrasikannya dengan modul <a href="http://drupal.org/project/unique\_field">nique field</a> , tanpa hasil, karena - <a href="http://drupal.org/project/unique\_field">bidang unik</a> modul tidak didukung oleh modul <a href="http://drupal.org/project/field\_collection">koleksi lapangan</a> .</p><p>apakah ada metode yang lebih sederhana untuk memeriksa apakah nilainya unik, dan untuk menampilkan kesalahan validasi, jika nilainya tidak unik?</p><p>sayangnya, drupal 7 tidak memiliki fitur ini secara default, jadi harus ada metode untuk melakukan ini.</p>
<p>akhirnya, inilah bagaimana saya mengadaptasi dan menempelkan saran dari @tostinni, @stefgosselin, @ uwe999 jawaban dan lainnya:</p><pre><code>/** * implementation of hook\_form\_alter(). */ function custom\_module\_form\_alter(&amp;$form, &amp;$form\_state, $form\_id) { switch ($form\_id) { case 'my\_form\_id': // add custom validation callback $form['#validate'][] = 'custom\_module\_my\_form\_id\_validate'; break; ... default: break; } } </code></pre><p>maka semua fungsi yang saya implementasikan di:</p><pre><code>/** * implementation of hook\_form\_form\_id\_alter */ function custom\_module\_my\_form\_id\_validate(&amp;$form, &amp;$form\_state) { //retrieve the value for your field $value = $form\_state['values']['field\_my\_field']['und'][0]['value']; //execute a count query to see if there's other similar values. $query = new entityfieldquery; $query-&gt;entitycondition('entity\_type', 'field\_collection\_item') -&gt;fieldcondition('field\_my\_field', 'value', $value) -&gt;count(); $count = $query-&gt;execute(); if ($count &gt; 0) { form\_set\_error('field\_my\_field', 'unique field value is already used.'); } } </code></pre><p>saya sudah mencoba bekerja dengan <code>entity\_metadata\_wrapper</code> tapi sayangnya saya belum berhasil.</p><p>terima kasih atas jawaban anda.</p>
<p><strong> tergantung pada fungsi generasi anda dan ukuran tabel akhir </strong></p><p>guid dimaksudkan untuk menjadi <em> unik secara global</em> pengidentifikasi. seperti yang dibahas dalam <a href="http://www.postgresql.org/docs/8.3/static/datatype-uuid.html">dokumentasi postgres 8.</a> tidak ada metodologi yang secara universal sesuai untuk menghasilkan pengidentifikasi ini, tetapi postgresql tidak mengirim dengan beberapa kandidat yang lebih berguna.</p><p>dari ruang lingkup masalah anda, dan kebutuhan untuk <em> offline</em> menulis, anda telah dengan rapi menghapus penggunaan apa pun selain guid, dan oleh karena itu tidak ada keuntungan kompensasi dari skema lain.</p><p>dari sudut pandang fungsional, panjang kunci biasanya tidak menjadi masalah pada segala jenis sistem modern, tergantung pada jumlah bacaan dan ukuran tabel. sebagai metodologi alternatif, klien offline dapat mengelompokkan catatan baru <em> tanpa</em> kunci utama dan cukup memasukkannya saat menghubungkan kembali. karena postgresql menawarkan tipe data "serial", klien tidak akan perlu menentukan id jika mereka dapat melakukan penulisan sederhana ke database.</p> himpunan  disebut daerah asala fungsi, disebut sebagai daerah asal alami (domain natural) jika tidak dinyatakan secara khusus, yaitu semua titik  pada suatu bidang di mana fungsi tersebut bermakna dan menghasilkan bilangan real.

dengan demikian, domain natural dari fungsi dua variabel adalah  . pertanyaan ini tidak memiliki jawaban global. silahkan anda pilih jawaban detil suatu relasi dua himpunan disebut fungsi apabila semua anggota daerah asal (domain) berpasangan tepat satu dengan anggota daerah kawan (kodomain).

dari relasi tersebut diketahui bahwa

 

terdapat anggota daerah asal atau himpunan  yang memiliki 2 pasangan yaitu  yang memiliki pasangan 7 dan 8.

jadi, relasi tersebut bukan merupakan fungsi. <p>sepertinya tidak ada cara untuk memberikan <em>integrasi aplikasi -&gt; nama domain</em> dan <em>federasi -&gt; penyedia identitas</em> melalui cloudformation.</p><p>saya hanya menemukan referensi untuk <a href="https://docs.aws.amazon.com/awscloudformation/latest/userguide/aws-resource-cognito-userpoolclient.html"><strong>user pool client</strong></a> (<em>pengaturan umum -&gt; klien aplikasi</em>) tetapi tidak akan mengonfigurasi <em>integrasi aplikasi -&gt; pengaturan klien aplikasi</em>.</p><p>jika anda perlu mengotomatisasi proses penyediaan <a href="https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-user-pool-domain.html"><em>nama domain</em></a> , <a href="https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-identity-provider.html"><em>penyedia identitas</em></a> dan <a href="https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool-client.html"><em>pengaturan klien aplikasi</em></a> untuk kelompok pengguna , anda dapat melakukannya dengan membuat skrip khusus (aws cli) atau lambda (aws sdk) yang harus dilakukan setelah penyebaran tumpukan.</p><p><br/> <strong>perbarui</strong></p><p>lihatlah <a href="https://github.com/rosberglinhares/cloudformationcognitocustomresources"><strong>contoh luar biasa</strong></a> ( <a href="https://stackoverflow.com/a/50980165/9576697">jawaban di bawah</a> ) yang menunjukkan penggunaan <a href="https://docs.aws.amazon.com/awscloudformation/latest/userguide/template-custom-resources.html">cloudformation custom resources</a> dengan lambda.</p> pertanyaan ini tidak memiliki jawaban global. silahkan anda memilih jawaban detil. diketahui sistem pertidaksamaan:

  

untuk menentukan himpunan penyelesaian dari sistem pertidaksamaan di atas, dapat dilakukan dengan langkah-langkah berikut.

titik potong garis  dengan sumbu koordinat kartesius.

 

sehingga diperoleh titik potong . selanjutnya digambarkan garis lurus yang menghubungkan kedua titik yang diperoleh tersebut.

kemudian untuk menentukan daerah himpunan penyelesaian dari pertidaksamaan , maka dipilih sebarang titik di luar garis yang digambarkan untuk diujikan pada pertidaksamaan tersebut. misalnya dipilih titik  dan disubstitusikan ke pertidaksamaan sehingga diperoleh:

  

karena hasil substitusi titik  ke pertidaksamaan tersebut menyebabkan pertidaksamaan bernilai salah, maka daerah penyelesaiannya adalah daerah yang tidak memuat titik . 

selanjutnya karena diketahui juga  maka daerah himpunan penyelesaian sistem pertidaksamaan tersebut berada di kuadran i (di atas sumbu x dan di kanan sumbu y).

dengan demikian, daerah himpunan penyelesaian sistem pertidaksamaan yang diberikan pada soal dapat ditunjukkan oleh daerah diarsir pada grafik berikut. pada soal tersebut terdapat sistem pertidaksamaan





fungsi tujuan yang akan diminimumkan adalah fungsi .

pertama kita gambar daerah pertidaksamaannya. setiap persamaan garis dapat dicari dengan mencari titik potong garis dengan sumbu x dan sumbu y. berikut tabel titik potongnya.







daerah himpunan penyelesaian dapat dicari dengan melakukan uji titik. grafiknya adalah:





titik b merupakan titik pojok yang dapat dicari dengan mencari titik potong antar kedua garis dengan substitusi dan eliminasi.





diperoleh titik .

untuk mencari nilai minimumnya, kita lakukan uji titik pojok. berikut tabelnya.





karena fungsi  hanya minimum di titik , maka kita peroleh dua pertidaksamaan, yaitu:





dan





sehingga, jika digabungkan, diperoleh syarat .

oleh karena itu, jawaban yang benar adalah a. <p>tersandung pada ini, anehnya sulit ditemukan lagi nanti. menempatkan di sini untuk anak cucu:</p><pre><code>sudo yum install nodejs npm --enablerepo=epel </code></pre><p><strong>edit 3:</strong> pada juli 2016, <strong>edit 1</strong> tidak lagi berfungsi untuk nodejs 4 (dan <strong>edit 2</strong> keduanya). jawaban ini ( <a href="https://stackoverflow.com/a/35165401/78935">https://stackoverflow.com/a/35165401/78935</a> ) memberikan one-liner sejati.</p><p><strong>edit 1:</strong> jika anda mencari nodejs 4, silakan coba repo pengujian epel:</p><pre><code>sudo yum install nodejs --enablerepo=epel-testing </code></pre><p><strong>edit 2:</strong> untuk memutakhirkan dari nodejs 0.12 diinstal melalui repo epel menggunakan perintah di atas, ke nodejs 4 dari repo pengujian epel, silakan ikuti langkah-langkah ini:</p><pre><code>sudo yum rm nodejs sudo rm -f /usr/local/bin/node sudo yum install nodejs --enablerepo=epel-testing </code></pre><p>paket-paket yang lebih baru menempatkan binari simpul di <code>/usr/bin</code>, bukan <code>/usr/local/bin</code>.</p><p><em>dan latar belakang:</em></p><p>opsi <code>--enablerepo=epel</code> menyebabkan <code>yum</code> untuk mencari paket dalam repositori epel.</p><blockquote> <p>epel (paket ekstra untuk perusahaan linux) adalah proyek repositori berbasis komunitas dan open source dari tim fedora yang menyediakan 100% paket perangkat lunak tambahan berkualitas tinggi untuk distribusi linux termasuk rhel (red hat enterprise linux), centos, dan scientific linux. proyek epel bukan bagian dari rhel/cent os tetapi dirancang untuk distribusi linux utama dengan menyediakan banyak paket sumber terbuka seperti jaringan, sys admin, pemrograman, pemantauan dan sebagainya. sebagian besar paket epel dikelola oleh fedora repo.</p> <p><em>via <a href="http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/">http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/</a> </em></p> </blockquote> <p>tidak, redis lebih dari sekadar cache. </p><p>seperti cache, redis menyimpan kunci = pasangan nilai. tetapi tidak seperti cache, redis memungkinkan anda beroperasi pada nilai-nilai. ada 5 tipe data dalam redis - string, set, hash, daftar dan set diurutkan. setiap tipe data memperlihatkan berbagai operasi.</p><p>cara terbaik untuk memahami redis adalah dengan memodelkan suatu aplikasi tanpa memikirkan bagaimana anda akan menyimpannya dalam database. </p><p>katakanlah kita ingin membangun stackoverflow.com. untuk membuatnya sederhana, kita membutuhkan pertanyaan, jawaban, tag, dan pengguna.</p><h2>pertanyaan modeling, pengguna dan jawaban</h2><p>setiap objek dapat dimodelkan sebagai peta. misalnya, pertanyaan adalah peta dengan bidang {id, judul, date\_asked, suara, asked\_by, status}. demikian pula, sebuah jawaban adalah peta dengan bidang {id, question\_id, answer\_text, answer\_by, suara, status}. demikian pula, kita dapat memodelkan objek pengguna.</p><p>masing-masing benda ini dapat langsung disimpan di redis sebagai hash. untuk menghasilkan id unik, anda dapat menggunakan perintah kenaikan atom. sesuatu seperti ini - </p><pre><code>$ hincrby unique\_ids question 1 (integer) 1 $ hmset question:1 title "is redis just a cache?" asked\_by 12 votes 0 ok $ hincrby unique\_ids answer 1 (integer) 1 $ hmset answer:1 question\_id 1 answer\_text "no, its a lot more" answered\_by 15 votes 1 ok </code></pre><h2>menangani suara</h2><p>sekarang, setiap kali seseorang menjawab pertanyaan atau jawaban, anda hanya perlu melakukan ini </p><pre><code>$ hincrby question:1 votes 1 (integer) 1 $ hincrby question:1 votes 1 (integer) 2 </code></pre><h2>daftar pertanyaan untuk beranda</h2><p>selanjutnya, kami ingin menyimpan pertanyaan terbaru untuk ditampilkan di beranda. jika anda sedang menulis program .net atau java, anda akan menyimpan pertanyaan dalam daftar. ternyata, itu adalah cara terbaik untuk menyimpan ini di redis juga. </p><p>setiap kali seseorang mengajukan pertanyaan, kami menambahkan idnya ke daftar. </p><pre><code>$ lpush questions question:1 (integer) 1 $ lpush questions question:2 (integer) 1 </code></pre><p>sekarang, ketika anda ingin merender beranda, anda meminta redis untuk 25 pertanyaan terbaru. </p><pre><code>$ lrange questions 0 24 1) "question:100" 2) "question:99" 3) "question:98" 4) "question:97" 5) "question:96" ... 25) "question:76" </code></pre><p>sekarang setelah anda memiliki id, ambil item dari redis menggunakan pipelining dan menunjukkannya kepada pengguna.</p><h2>pertanyaan dengan tag, diurut berdasarkan pilihan</h2><p>selanjutnya, kami ingin mengambil pertanyaan untuk setiap tag. tetapi so memungkinkan anda untuk melihat pertanyaan pilihan teratas, pertanyaan baru atau pertanyaan yang tidak dijawab di bawah setiap tag.</p><p>untuk memodelkan ini, kami menggunakan fitur set diurutkan redis. set diurutkan memungkinkan anda untuk mengaitkan skor dengan setiap elemen. anda kemudian dapat mengambil elemen berdasarkan skor mereka. </p><p>ayo maju dan lakukan ini untuk tag redis </p><pre><code>$ zadd questions\_by\_votes\_tagged:redis 2 question:1 (integer) 1 $ zadd questions\_by\_votes\_tagged:redis 10 question:2 (integer) 1 $ zadd questions\_by\_votes\_tagged:redis 5 question:613 (integer) 1 $ zrange questions\_by\_votes\_tagged:redis 0 5 1) "question:1" 2) "question:613" 3) "question:2" $ zrevrange questions\_by\_votes\_tagged:redis 0 5 1) "question:2" 2) "question:613" 3) "question:1" </code></pre><p>apa yang kita lakukan di sini? kami menambahkan pertanyaan ke set yang diurutkan, dan mengaitkan skor (jumlah suara) untuk setiap pertanyaan. setiap kali sebuah pertanyaan dibatalkan, kami akan menambah nilainya. dan ketika pengguna mengklik &quot;pertanyaan yang ditandai redis, disortir berdasarkan suara&quot;, kami hanya melakukan <code>zrevrange</code> dan mendapatkan kembali pertanyaan teratas.</p><h2>pertanyaan waktu nyata tanpa halaman yang menyegarkan</h2><p>dan akhirnya, fitur bonus. jika anda membiarkan halaman pertanyaan terbuka, so akan memberi tahu anda ketika pertanyaan baru ditambahkan. bagaimana redis bisa membantu di sini?</p><p>redis memiliki model pub-sub. anda dapat membuat saluran, misalnya &quot;channel\_questions\_tagged\_redis&quot;. anda kemudian <code>subscribe</code> pengguna ke saluran tertentu. ketika pertanyaan baru ditambahkan, anda akan <code>publish</code> pesan ke saluran itu. semua pengguna akan mendapatkan pesan. anda harus menggunakan teknologi web seperti soket atau komet web untuk benar-benar mengirimkan pesan ke browser, tetapi redis membantu anda dengan semua pipa ledeng di sisi server.</p><h2>kegigihan, keandalan, dll.</h2><p>tidak seperti cache, redis tetap menyimpan data pada hard disk. anda dapat memiliki pengaturan master-slave untuk memberikan keandalan yang lebih baik. untuk mempelajari lebih lanjut, buka topik kegigihan dan replikasi di sini - <a href="http://redis.io/documentation">http://redis.io/documentation</a> </p>