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

Praktik terbaik untuk bendera bit di PHP

Dalam model Anda , objek memiliki 8 properti boolean. Itu menyiratkan 8 kolom boolean (TINYINT untuk MySQL) di tabel database Anda dan 8 metode pengambil/penyetel di objek Anda. Sederhana dan konvensional.

Pikirkan kembali pendekatan Anda saat ini. Bayangkan apa yang akan dikatakan orang berikutnya yang harus mempertahankan hal ini.

CREATE TABLE mytable (myfield BIT(8));

Oke, sepertinya kita akan mendapatkan beberapa data biner di sini.

INSERT INTO mytable VALUES (b'00101000');

Tunggu, seseorang beri tahu saya lagi apa arti dari masing-masing 1 dan 0 itu.

SELECT * FROM mytable;
+------------+
| mybitfield |
+------------+
| (          | 
+------------+

Apa?

SELECT * FROM mytable WHERE myfield & b'00101000' = b'00100000';

WTF!? WTF!?

menusuk wajah sendiri

-- sementara itu, di alam semesta alternatif tempat peri bermain dengan unicorn dan programmer tidak membenci DBA... --

SELECT * FROM mytable WHERE field3 = 1 AND field5 = 0;

Kebahagiaan dan sinar matahari!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menjalankan kueri di MYSQL tanpa menulisnya ke log biner?

  2. mysql pilih nilai baris dinamis sebagai nama kolom, kolom lain sebagai nilai

  3. Doctrine 2 Query Builder abs Fungsi

  4. MySQL:Cara mencari beberapa tabel untuk string yang ada di kolom mana pun

  5. Simpan GUID di MySQL dari C#