Vinnaren i pepparkakshustävlingen!
2018-11-08, 10:40
  #1
Medlem
Har hört att man ska undvika ändra tabelldesign på en tabell i en databas som är i drift av den anledningen att tabellen i själva verket tas bort och återskapas på nytt (givetvis med samma data i).

Stämmer det?
Citera
2018-11-08, 10:48
  #2
Moderator
Protons avatar
Citat:
Ursprungligen postat av PN
Har hört att man ska undvika ändra tabelldesign på en tabell i en databas som är i drift av den anledningen att tabellen i själva verket tas bort och återskapas på nytt (givetvis med samma data i).

Stämmer det?
Gäller det SQL server och man gör det med sql server management studios GUI kan den göra det, däremot har jag inte varit med om att ett ALTER TABLE-kommando och lägga till kolumner har pajjat nåt.

Som vanligt när man ska ändra nåt som är i drift ändrar man i testmiljön först, därefter om allt gått bra ändrar man i prod.
Citera
2018-12-22, 00:44
  #3
Medlem
Den största faran med att ändra en tabells design är att de flesta icke-databasutvecklare-utvecklare (rätt stavat) gör en massa dumheter som SELECT * FROM tabell och sedan kanske en foreach field in fields och får krasch i applikationen, sedan kan kolumner byta ordning, och skriver man då SELECT * FROM tabell kanske någon applikation får krupp, och tar man bort kolumner kan det ju kruppa.

lägger man till kolumner måste de vara NULLABLE och all INSERT MÅSTE vara inkl kolumndefinition annars SKITER DET SIG BIG TIME.

Alla problem är ganska enkla att undvika. ALLA kodare ska arbeta via en ORM, denna ORMens all CRUD SKALL gå via PROCEDURER, eller så döper man om tabellen man ändrar, skapar en vy och tre procedurer för insert, update och delete, och sedan mappar dessa till INSTEAD OF triggers på vyn som man också döpt om till hur tabellen hette. Och medans man löser applikationen att jobba via procedurer funkar vyn som ett substitut.


att ändra en design är ett arkitekturbeslut som ligger över både app-kodaren och dbans paygrade...
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback