Wydaje się, że powinienem używać tinyint(); ale nie wiem, jak to wdrożyć?Jak mogę dodać pole logiczne do MySQL?
Pytanie jest jaki jest Twój zalecenie czy muszę mieć pole logiczną w MySQL DB i modyfikować wartości its PHP
Wydaje się, że powinienem używać tinyint(); ale nie wiem, jak to wdrożyć?Jak mogę dodać pole logiczne do MySQL?
Pytanie jest jaki jest Twój zalecenie czy muszę mieć pole logiczną w MySQL DB i modyfikować wartości its PHP
Tak, TINYINT(1)
jest sposobem na ... można również użyć BOOL
or BOOLEAN
, które są synonimami (więc nie robi różnica).
0
ocenia się false
PHP i 1
do true
(w rzeczywistości, dowolną inną liczbę niż 0
ocenia się true
, ale 1
zwykle używane).
Dzięki Bardzo przydatne, już wdrażanie! – Trufa
@Felix Kling nie ma żadnej innej liczby niż 0 oznacza true http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html –
@Viswanathan: Właściwie mówiłem o PHP w tym przypadku, a nie MySQL. –
Jesteś poprawne, że ogólne rozwiązanie jest tinyint(1)
. Można użyć BOOL w skrócie:
CREATE TABLE example (
flag BOOL
);
masz możliwość tinyint (1) lub bitu
wkładki 0 lub 1 w tej dziedzinie
zobaczyć ten post różnicy:
Dzięki za wyjaśnienia! – Trufa
Wolę nie bool, BIT, TINYINT (1). ponieważ żaden z nich nie jest w rzeczywistości boolean. Można sprawdzić poniższy link dla 'dlaczego':
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
bym lepiej użyć: ENUM ('false', 'true') not null - jako typ danych. Możesz przekazać "true" lub "false" (jako łańcuchy) z PHP. A przechowywanie go zajmie tylko 1 bajt!
Dlaczego nie ENUM ("0", "1") zamiast tego – tormuto
W rzeczywistości ciąg '' false'' jest, jak na ironię, truey w PHP. – jonbaldie
@tormuto tak, możesz. to pomogłoby w automatycznym pisaniu w PHP podczas czytania. Ale z ENUM nie jest to bezpieczną praktyką, ponieważ możesz zapomnieć o przekazywaniu ciągów z PHP. Co by się stało, gdyby ktoś omyłkowo ogłosił ENUM ("1", "0")? Widziałem wiele kodów takich jak ("tak", "nie"). – Muktadir
myślę skoro faktycznie chce wymusić wartość logiczną (0,1) ograniczenie na polu tabeli mysql, najlepszym strzelcem jest Strojenie ENUM
CREATE TABLE table_name(
boolean_field_name ENUM('0', '1')
);
logiczny pole może być również interpretowane jako 1 i 0, tak posiadanie pola tinyint spowoduje szybszą bazę danych. A jeśli indeksujesz to jeszcze szybciej. Wszystkie poniższe odpowiedzi są dla Ciebie wartościowe! @Felix @Matthew @Haim dobra robota –
@etbal Tak, naprawdę, wszystko bardzo pomocne! – Trufa