Autor
|
Tema: Duda a la hora de hacer una restricción (Leído 4,616 veces)
|
Magnumrace
Desconectado
Mensajes: 12
|
Estoy creando una tabla y me he quedado en uno de los requisitos que me piden que es el siguiente: El atributo carrera almacenará la inicial de la misma en mayuscula: (I)nformatica, (F)armacia, (D)erecho, etc. Estoy creando la tabla alumno con sus atributos, tipo de datos etc. pero a la hora de crear el atributo carrera con esas restricciones me quedo en blanco, sé que puedo sacar la primera letra en mayuscula con substring pero no sé como aplicarlo para cada carrera. Yo lo tengo pensado así: (SQL Server) Carrera VARCHAR(10) NOT NULL CONSTRAINT ck_carrera (CHECK IN (SUBSTRING ([nombre], 1, 1))
|
|
|
En línea
|
|
|
|
Serapis
|
declaralo de tipo byte... obtienes la letra adecuada, la conviertes a mayúsculas y luego tomas el valor ASCII de la misma. Cuando insertes una asignatura, comprueba que no exista ya, si existe elige otra letra... un ejemplo: (D)erecho, (M)atemáticas, Medici(N)a
Aunque si las asignaturas fueran constantes (introducidas todas inicialmente cuando creas la tabla), quedaría más sencillo pues puedes elegir antes que letras.
Técnicamente una tabla 'tblAsignaturas' debiera tener 2 campos, Id (primary key) y Asiganutura (varchar(40)), y opcionalmente otro campo Descripción... Esto te permitiría tener por ejemplo tener Medicina I, Medicina II, Medicina III, o Medicina nuclear... ahora si te han pedido expresamente una inicial, puedes hacerlo como te acabo de describir y crear un campo Abreviatura... aunque lo correcto es tener una tabla Asginaturas y tirar de Id para su identificación... pero si no te dejan crear una tabla asignaturas, técnicamente es... una chapuza.
p.d.: donde he puesto Asignatura, da igual que sea Carrera... no cambia más que el ejemplo.
|
|
« Última modificación: 11 Junio 2021, 22:42 pm por Serapis »
|
En línea
|
|
|
|
Magnumrace
Desconectado
Mensajes: 12
|
declaralo de tipo byte... obtienes la letra adecuada, la conviertes a mayúsculas y luego tomas el valor ASCII de la misma. Cuando insertes una asignatura, comprueba que no exista ya, si existe elige otra letra... un ejemplo: (D)erecho, (M)atemáticas, Medici(N)a
Aunque si las asignaturas fueran constantes (introducidas todas inicialmente cuando creas la tabla), quedaría más sencillo pues puedes elegir antes que letras.
Técnicamente una tabla 'tblAsignaturas' debiera tener 2 campos, Id (primary key) y Asiganutura (varchar(40)), y opcionalmente otro campo Descripción... Esto te permitiría tener por ejemplo tener Medicina I, Medicina II, Medicina III, o Medicina nuclear... ahora si te han pedido expresamente una inicial, puedes hacerlo como te acabo de describir y crear un campo Abreviatura... aunque lo correcto es tener una tabla Asginaturas y tirar de Id para su identificación... pero si no te dejan crear una tabla asignaturas, técnicamente es... una chapuza.
p.d.: donde he puesto Asignatura, da igual que sea Carrera... no cambia más que el ejemplo.
Pero puedo hacerlo de la manera como lo hago? O algo parecido? Que cuando la ponga carrera Informática solo tome la primera letra que en este caso es la letra I. Sin irnos a tal extremo que podría repetirse la misma letra
|
|
|
En línea
|
|
|
|
Serapis
|
Sí, si el dato es solo de consulta (y se asigna cuando se crea el usuario)... Ahora, por qué usar un varchar(10) si sabes a propósito que su tamaño será fijo a 1 carácter?.
|
|
|
En línea
|
|
|
|
Magnumrace
Desconectado
Mensajes: 12
|
Sí, si el dato es solo de consulta (y se asigna cuando se crea el usuario)... Ahora, por qué usar un varchar(10) si sabes a propósito que su tamaño será fijo a 1 carácter?.
Tienes razón en lo que me dices. Había pensado en varchar (10) porque iba a tomar la palabra completa y de ahí mismo una letra. O sea que tengo que poner como tipo de dato Char no?
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
que me puede estar saliendo mal a la hora de hacer injection sql
Nivel Web
|
RedZer
|
9
|
5,119
|
28 Diciembre 2010, 04:06 am
por Darioxhcx
|
|
|
Es posible hacer que el pc se prenda a cierta hora?
Java
|
klaine
|
6
|
4,596
|
14 Diciembre 2011, 10:59 am
por Norlak
|
|
|
13 Cosas que deberías hacer en tu hora de Almuerzo
Foro Libre
|
Graphixx
|
0
|
2,044
|
23 Noviembre 2013, 08:35 am
por Graphixx
|
|
|
(Python 3.5) Hacer una accion a una determinada hora
Scripting
|
BigKaz
|
5
|
4,309
|
10 Diciembre 2016, 19:01 pm
por antkk
|
|
|
Problema a la hora de hacer deploy en Now con un servidor de ExpressJS
Desarrollo Web
|
Ali Baba
|
0
|
1,647
|
24 Septiembre 2019, 04:47 am
por Ali Baba
|
|