Znam jego głupie pytanie, ale chcę wiedzieć, co jest dobrą praktyką, gdy zapisuję wartość int w bazie danych zamiast char.

Kiedy chcę zaoszczędzić tygodnie w bazie danych.

Myślę, że jeśli zapisujemy wartość znaczenia w bazie danych, jest bardziej opisowa. Więc powiedz mi, który jest dobry i dlaczego? Istnieje jakieś problemy z wydajnością, czy nie?

2
Durgpal Singh 15 luty 2017, 16:18

2 odpowiedzi

Najlepsza odpowiedź

char nie jest bardziej opisowy. Jeśli zamierzasz użyć tej wartości dla wszystkiego w bazie danych, będzie musiał zostać przekonwertowany na liczbę w każdym razie.

Jeśli wartość maksymalna ma wartość 52/53 (w zależności od tygodnia / Isoweek), a następnie użyj tinyint. W przeciwnym razie użyj innej integer typ danych .

Inny potencjalny problem jest sortowanie. Jeśli zamierzasz sortować w tygodniu, zamierzasz przechowywać wiodące zera, aby sortować w kolejności, aby użyć typu danych char lub zostaw to sortowanie jako 1, 11, 12..?

5
SqlZim 15 luty 2017, 13:22

To zdanie jest problemem:

Myślę, że jeśli zapisujemy wartość znaczenia w bazie danych, jest bardziej opisowa

Wartości w bazie danych nie powinny być zaprojektowane jako opisowe .

Należy zawsze przechowywać wartości w odpowiednich typach danych!

Wyobraź sobie, że masz potrzebę obliczenia różnicy. Musisz podzielić / analizować ciąg, rzuć go do typu numerycznego, wykonaj obliczenia i ponownie formatować wyjście.

opisowy to słowo, które należy stosować tylko w związku z warstwą prezentacji, raportowaniem i frontem.

3
Shnugo 15 luty 2017, 13:36