Doctrine 2 + valeur non signée
Est-il possible de spécifier un type de colonne de unsigned integer
dans la Doctrine 2?
Vous devez vous connecter pour publier un commentaire.
Est-il possible de spécifier un type de colonne de unsigned integer
dans la Doctrine 2?
Vous devez vous connecter pour publier un commentaire.
Vous le pouvez, mais vous perdrez la portabilité. Utilisation
columnDefinition
attribut et le configurer pourinteger unsigned
. Le code dépend de ce que vous êtes en utilisant.Il n'y a pas de place dans la doc (que j'ai vu) que parler de cela, mais il fonctionne.
Mise à jour
Définition en Yaml (comme de 2,4 pour clé primaire)
options: { unsigned: true }
?Décimales permettra aussi grand nombre, et vous permettent de garder les SchemaTool, il suffit de définir l'échelle à 0.
Caisse pleine writeup sur pourquoi ici. [EDIT](le lien ne fonctionne pas) j'ai collé l'article ci-dessous. Il a été écrit par moi, de toute façon 😉
non signé nombre tellement grand que votre cerveau va exploser! w/Doctrine 2
Orm ont un problème inhérent. Comment prenez-vous un type de données seulement certains Sgbdr soutien et vous permettent de l'utiliser de toute façon. Bien quand il s'agit de la Doctrine 2 et les nombres non signés ils se sont un peu paresseux.
Tout ce que je veux faire est de stocker mes 64bit facebook Id. Comment dur est-ce? Eh bien, mon SGBD est mySQL donc tout ce que je vraiment besoin est un entier non signé de type bigint.
Cela semble trouver dans le meilleur des mondes jusqu'à ce que vous lirez ce qui suit:
columnDefinition: DDL code SQL qui commence après le nom de la colonne et spécifie la complète (non portable!) définition de la colonne. Cet attribut permet d'utiliser des avancées RMDBS fonctionnalités. Cependant, vous devriez faire attention à l'utilisation de cette fonctionnalité, et les conséquences. SchemaTool ne détecte pas les changements sur la colonne correctement plus si vous utilisez “columnDefinition”.
Fondamentalement, cette fonctionnalité vous permettra de forme libre et non pris en charge choses dans la définition de la colonne. Faire unsigned numéros techniquement APPUYÉS par les nations UNIES! Pour ne pas mentionner mon développement et d'assurance qualité des systèmes de déploiement s'appuient fortement sur la SchemaTool. Nous pouvons remercier une combinaison de paresseux développeurs à la Doctrine et de la sqlite3 pour cette petite pépite de crazy town.
Ce qui motive une recherche sur google. Je n'aime pas la pensée si je n'ai pas d'. Qu'ai-je le trouver? Tout le monde y est varchars. VARCHARS!?!? J'ai environ une crise cardiaque. C'était tout simplement inacceptable.
Entre ainsi en décimal. C'est l'idéal. La taille de stockage est variable et il est stocké en binaire afin d'indexation est super rapide. Nous venons de régler la précision décimale à zéro et voilà. L'ORM peut porter n'importe quel SGBD, il est assez grand pour nous, ne pas se soucier de la non prise en charge signé/non signé problème et c'est aussi rapide que l'éclair. décimal(20,0) doit gérer notre facebook de la taille de dix-huit quintillion quatre cent quarante-six trillions de sept cent quarante-quatre billions de soixante-treize milliards sept cent neuf millions cinq cent cinquante et un mille six cent quinze assez bien.
Doctrine 1 documentation et Doctrine 2 documentation dit que vous pouvez le faire par cette façons:
PHP annotations:
Yaml: (voir les docs)
Espère que cela aide à quelqu'un pour enregistrer un temps 😉