ruby-on-rails données - Différence entre la chaîne et le texte dans les rails?




zero formulaire (6)

La chaîne se traduit par "Varchar" dans votre base de données, tandis que le texte se traduit par "texte". Un varchar peut contenir beaucoup moins d'éléments, un texte peut être de (presque) n'importe quelle longueur.

Pour une analyse approfondie avec de bonnes références vérifier http://www.pythian.com/news/7129/text-vs-varchar/

Edit: Certains moteurs de base de données peuvent charger varchar en une seule fois, mais stocker du texte (et blob) en dehors de la table. Un SELECT name, amount FROM products pourrait, être beaucoup plus lent lors de l'utilisation du text pour le name que lorsque vous utilisez varchar . Et puisque Rails, par défaut charge les enregistrements avec SELECT * FROM... vos text-columns seront chargées. Cela ne sera probablement jamais un problème réel dans votre ou mon application, cependant (l'optimisation prématurée est ...). Mais sachant que le texte n'est pas toujours "libre", c'est bon à savoir.

Je fais une nouvelle application web en utilisant Rails, et je me demandais, quelle est la différence entre la string et le text ? Et quand faut-il les utiliser tous les deux?


Comme expliqué ci-dessus, non seulement le type de données db, il affectera également la vue qui sera générée si vous êtes échafaudage. string va générer un texte text_field va générer un text_area


Chaîne si la taille est fixe et petite et texte si elle est variable et grande. C'est assez important parce que le texte est beaucoup plus gros que les chaînes. Il contient beaucoup plus de kilo-octets.

Donc, pour les petits champs, utilisez toujours la chaîne (varchar). Les champs aiment. prénom, login, email, sujet (d'un article ou article) et exemple de textes: contenu / corps d'un article ou article. champs pour les paragraphes etc

Taille de la chaîne de 1 à 255 (par défaut = 255)

Taille du texte 1 à 4294967296 (par défaut = 65536) 2


La différence dépend de la façon dont le symbole est converti en son type de colonne respectif dans le langage de requête.

avec MySQL: chaîne est mappée à VARCHAR (255) - http://guides.rubyonrails.org/migrations.html

:string |                   VARCHAR                | :limit => 1 to 255 (default = 255)  
:text   | TINYTEXT, TEXT, MEDIUMTEXT, or LONGTEXT2 | :limit => 1 to 4294967296 (default = 65536)

Référence:

http://www.packtpub.com/article/Working-with-Rails-ActiveRecord-Migrations-Models-Scaffolding-and-Database-Completion

Quand devrait-on utiliser chacun d'eux?

En règle générale, utilisez :string pour la saisie de texte court (nom d'utilisateur, email, mot de passe, titres, etc.) et utilisez :text pour une saisie plus longue comme les descriptions, le contenu des commentaires, etc.


Utilisez une chaîne pour un champ plus court, comme les noms, adresse, téléphone, compagnie

Utilisez le texte pour un contenu plus large, des commentaires, du contenu, des paragraphes.

Ma règle générale, si c'est quelque chose qui est plus d'une ligne, je vais généralement pour le texte, si c'est un court 2-6 mots, je vais pour la chaîne.

La règle officielle est 255 pour une chaîne. Donc, si votre chaîne contient plus de 255 caractères, optez pour le texte.


En deux mots:

attr_accessor est getter , méthode setter . alors que attr_accessible est de dire que cet attribut particulier est accessible ou non. c'est tout.

Je souhaite ajouter que nous devrions utiliser le paramètre Strong au lieu de attr_accessible pour protéger de l' attr_accessible de masse.

À votre santé!





ruby-on-rails