mam tych pól ciąg/tekstowe w mojej bazy danych pliku migracji:Sprawdzanie poprawności Railsów ActiveRecord: maksymalna długość napisu?
t.string :author
t.string :title
t.string :summary
t.text :content
t.string :link
A oto moje pytania:
- Każdy atrybut ciąg/tekst powinien mieć maksymalną sprawdzanie długości dla obu celów, bezpieczeństwo (jeśli nie chcesz otrzymywać kilku MB wprowadzania tekstu) i bazy danych (jeśli string = varchar, mysql ma limit 255 znaków). Czy to prawda, czy jest jakiś powód, dla którego nie ma maksymalnej walidacji długości dla wszystkich atrybutów ciągów/tekstów w bazie danych?
- Jeśli nie zależy mi na dokładnej długości autora i tytułu, ponieważ nie są one zbyt długie, aby można je było zapisać jako ciągi, czy należy ustawić maksymalną długość na 255 dla każdego z nich?
- Jeśli maksymalna długość adresu URL wynosi około 2000 znaków, czy bezpieczne jest przechowywanie łączy jako ciągów, a nie jako tekstów? Czy powinienem walidować maksymalną długość atrybutu łącza, jeśli już sprawdzam poprawność jego formatu za pomocą wyrażeń regularnych?
- Czy atrybut zawartości (tekst) powinien mieć maksymalną długość, aby chronić bazę danych przed wprowadzeniem nieograniczonej długości? Na przykład, czy ustawienie maksymalnej długości pola tekstowego na 100 000 znaków jest uzasadnione, czy jest to całkowicie bezcelowe i nieefektywne?
Rozumiem, że te pytania mogą wydawać się nieistotne dla niektórych osób, ale nadal - to jest potwierdzenie wkładu, które jest wymagane dla każdej aplikacji, - i myślę, że warto tu być raczej paranoikiem.