Czy można przechowywać liczby jako varchar?przechowywanie liczb jako varchar
Jaka jest różnica między
int 123456789012
i varchar 123456789012
?
Czy można przechowywać liczby jako varchar?przechowywanie liczb jako varchar
Jaka jest różnica między
int 123456789012
i varchar 123456789012
?
Nie, prawie zawsze jest to zły pomysł.
Nie będzie można wykonywać obliczeń z kolumnami zadeklarowanymi jako varchar, więc należy używać typów liczbowych. A ponieważ twoje zapytanie SQL jest ciągiem, MySQL wykonuje całą konwersję (nie oznacza to oczywiście, że nie musisz sprawdzać poprawności wartości podanych przez użytkownika).
myślę jest ok do przechowywania numerów jak varchar, tak długo, jak nie chcesz, aby Calcs z to.
Na przykład numer telefonu lub kody pocztowe lepiej przechowywać w polach Varchar, ponieważ można je sformatować.
Możesz przechowywać wiodące zera w varcharze, którego nie możesz zrobić za pomocą kolumn całkowitych (np. Możliwa jest różnica między 123
i 0000123
). Na przykład kody pocztowe w niektórych krajach. Jeśli jednak musisz to zrobić, to naprawdę masz do czynienia z informacjami tekstowymi, które powinny mieć kolumnę varchar. Na przykład numery telefonów lub kody pocztowe powinny z pewnością przejść do kolumny varchar.
W przeciwnym razie, jeśli używasz danych takich jak liczby (dodawanie ich razem, porównywanie itp.), Powinieneś umieścić je w kolumnie całkowitej. Zajmują znacznie mniej miejsca i są szybsze w użyciu.
Problem z zerami również może być wadą. Niedawno natknąłem się na sytuację w projekcie, w którym ze względu na sposób obsługi kodu Java jedna tabela miała wiodące zera, a druga nie. To utrudniło wykonywanie złączeń w tej kolumnie. Dane były liczbą i prawdopodobnie powinny być przechowywane jako takie, a nie jako varchar. – xdhmoore
Chciałbym przechowywać rzeczy takie jak numery telefonów i tylko takie rzeczy, jak numery telefonów, jako varchar, ponieważ tak naprawdę nie są to liczby jako takie. Nie robisz matematyki na numerach telefonów. Jednak przy podejmowaniu decyzji o typach pól typów wroga, zawsze powinieneś domyślnie używać typów liczbowych w stosunku do varchara, chyba że możesz wymyślić dobry powód, by nie dlatego, że przechodzenie z varchar do numerycznego jest o wiele trudniejsze niż na odwrót. – GordonM