2017-01-23 3 views
1

Ich muss an einem Projekt arbeiten, das mit einer SQL Server DB verbindet, während ich mit PHP und einem Laravel-Framework arbeite.MSSQL & SQL-Datentyp Alternativen?

Mein Problem ist mit den Datentypen und wo ich in der Lage wäre, sie in voll funktionsfähige und mehr "konventionelle" SQL-Datentypen zu ändern. Nehmen wir zum Beispiel NVARCHAR, wäre ich in der Lage, in einen normalen VARCHAR zu wechseln?

Die Typen I haben, sind:

  • NCHAR
  • NVARCHAR
  • GEOGRAPHY

ich über here gelesen habe, dass:

Laravel verwendet db-library (falls verfügbar), um eine Verbindung zum Sql-Server herzustellen, der keine Unicode-Daten von MSSQL empfangen kann. (1,2)

Gibt es jemanden in der Menge, der mit Laravel arbeitet und so eine Aufgabe erfüllt?

+2

NCHAR und NVARCHAR sind vollständig "konventionell". Sie ermöglichen den erweiterten Zeichensatz. Diese Seite sollte sich als äußerst hilfreich erweisen. https://msdn.microsoft.com/en-us/library/ms187752.aspx –

+1

Wie GEOGRAPHY ... Was ist das eigentliche Problem, das Sie hier begegnen? – iamdave

+0

Ich hätte "konventionell" ausarbeiten sollen ... Laravel (und ich bin mir sicher, dass andere Frameworks) spezifische Modelle und Schemata haben, die konventionelle Datentypen verwenden, wenn Sie mit Laravel eloquenten Modellen vertraut sind, in jedem Fall werde ich meine Frage ändern um Dinge zu klären. – DudeOfLayers

Antwort

1

können Sie folgende Konvention verwenden ich von MSSQL data types to MYSQL data types gefunden

NCHAR => CHAR/LONGTEXT 
NVARCHAR => VARCHAR/MEDIUMTEXT/LONGTEXT 

Noch keine Lösung für GEOGRAPHY Typ gefunden. Ich werde Sie auf dem Laufenden halten.

Gefunden this auf GEOGRAPHY, aber es erwähnt eindeutig kein Gegenstück dazu.

+0

Sie sagen also, dass ich Varchar frei verwenden kann, um Nvarchar zu ersetzen? Ich denke, der DBA hat das gemacht, weil wir hier alle Sprachen der Welt haben werden. Wird auch auf Ihre Antwort auf Geografie schauen. – DudeOfLayers

+1

@DudeOfLayers Ich bin nicht sicher über MySQL, aber in MSSQL definitiv nicht. Die Konvertierung von 'nvarchar' nach' varchar' behält internationale Zeichensätze nicht bei. – iamdave

+0

Ich stimme zu + alle Problemumgehungen, die ich im Internet gefunden habe, sind einfach zu gestaffelt und würden in keinem Code-Review akzeptiert werden, danke allen und werde auf zukünftige Antworten warten. – DudeOfLayers