Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

creación por parte del usuario de campos..

Estas en el tema de creación por parte del usuario de campos.. en el foro de Bases de Datos General en Foros del Web. Hola foro me gustaría saber si es posible la creación por parte del usuario de nuevos campos dentro de una tabla o de una tabla ...
  #1 (permalink)  
Antiguo 21/01/2005, 04:55
 
Fecha de Ingreso: noviembre-2004
Mensajes: 18
Antigüedad: 20 años, 2 meses
Puntos: 0
creación por parte del usuario de campos..

Hola foro me gustaría saber si es posible la creación por parte del usuario de nuevos campos dentro de una tabla o de una tabla entera.

Cuando hago busquedas sobre el tema "crear campos" siempre se refieren a campos creados desde una base de datos, pero no he conseguido encontrar nada sobre que los cree el usuario. ¿Acaso no es posible?

gracias anticipadas

Última edición por j0rmaz; 21/01/2005 a las 04:59
  #2 (permalink)  
Antiguo 21/01/2005, 13:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 23 años
Puntos: 129
No es que no sea posible .. lo que pasa es que no enfocas el problema correctamente según la filosofía de trabajo de este ambiente.

Fijate bien ..

Si tu hablas de "que un usuario cree sus campos en una BD" .. primero tienes que hacer dicho "formulario" HTML que pida a tu usuario esos datos mínimos como el nombre del campo, el tipo de dato (para el campo de tu BD, o eso lo das por defecto si gustas).

Ese "formulario" ataca a tu script.php de proceso .. el cual será el que tome esas dos "variables" y forme la sentencia SQL minima que necesitas para añadir un campo a una tabla .. Esa sentencia SQL su sintax correcta la tienes en el manual oficial de SQL de Mysql si es que trabajas con esa.

Así que el procedimiento es:

1) formualrio HTML --> tomar datos desde el cliente
2) tu script de proceso PHP .. -> compone tu sentencia SQL
3) tu script PHP de proceso -> ejecuta esa sentencia SQL

Debes pensar que al trabajar con Base de datos .. estás trabajando con SQL (lenguaje estrucutrado de consultas) .. uno de sus tantos comandos son los de creación de tablas o de "alteración" de una tabla (para crear más campos por ejemplo).

pero .. esos datos .. los pides en "HTML" (en el cliente) y los procesa "PHP" (en el servidor) y este a su vez "manda" a ejecutar la sentencia SQL que corresponda para lo que tengas que hacer con tu BD.

Se que no te pongo código de ejemplo .. pero creo que esta "teoría" es neceario que la conozcas .. por qué sino, nunca enfocaras las busquedas para resolver un problema como debe ser.

Otro detalle .. sería preguntarte para que necesitas crear más "campos" a una "tabla" de tu BD .. normalmente lo que "parece" que quieres hacer no se gestiona creando "campos" sino registros que es bien diferente y con otros modelos de datos (referente al diseño de Base de datos). Pero .. claro .. hasta que no expliques que pretendes hacer .. no se puede dicer que "no" .. todo hay que evaluarlo.

Un saludo,
  #3 (permalink)  
Antiguo 21/01/2005, 17:29
 
Fecha de Ingreso: noviembre-2004
Mensajes: 18
Antigüedad: 20 años, 2 meses
Puntos: 0
hola, gracias por tu ayuda, la verdad es que no soy programador voy a intentar explicarte que quiero hacer pues igual si que no lo enfoco correctamente... mira estoy creando un gestor de contenidos en el cual el cliente pueda añadir nuevos productos. En la BD tengo una tabla de características_técnicas de los productos introducidos hasta el momento, pero si el cliente introduce un producto nuevo, puede que tenga características nuevas y necesite añadirlas a esta tabla para así poder darle un valor.

Entonces del procedimiento entiendo:
1) que primero hago un formulario agregar_característica, pidiendo el nombre y tipo del campo
2) después proceso los datos y paso las variables a la BD con una sentencia que tengo que descubrir todavía :) y ...en ello estoy!

gracias de nuevo
  #4 (permalink)  
Antiguo 21/01/2005, 18:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 23 años
Puntos: 129
Bueno .. ese tema no deberìas plantear su soluciòn como "crear mas campos a la tabla de productos" sino en una estructura tipo

tabla propiedades_producto
id_propiedad_producto
nombre_propiedad

tabla propiedad_producto_relacion
id_propiedad_producto_relacion
id_producto
id_propiedad_producto
valor

tabla producto
id_producto
nombre_producto
otros

De este modo ..tienes una relaciòn N-N que te va relacionar una "propiedad" que definiras con el producto y su valor.

De este modo ..puedes crear miles de propiedades y cada producto tener N propiedades totalmente distintas o comunes unos con otros con sus valores distintos cada producto.

Y esto ya es un tema màs de "Base de datos" que no de PHP ..debes definir bien el "modelo de datos" para luego "consultarlo" con PHP. Puedes preguntar si lo deseas en el foro de "Base de datos" por una mejor soluciòn al problema ..pero esta soluciòn mas o menos funciona asì.

Te recomiendo los manuales sobre Base de datos y "normalizaciòn" de:
www.mysql-hispano.com

Un saludo,
  #5 (permalink)  
Antiguo 22/01/2005, 04:07
 
Fecha de Ingreso: noviembre-2004
Mensajes: 18
Antigüedad: 20 años, 2 meses
Puntos: 0
hola Closter, perdona mi ignorancia, pero no acabo de entender, no creo que necesite tablas relacionadas ya que las características ·debe entrarlas el cliente·

Opciones para el cliente (botones/links)en el gestor de contenidos de su web
1- añadir noticia
2- añadir característica_técnica
3- añadir producto
4- añadir link
5- añadir imágenes

1- el primero abre un formulario donde ·el cliente· añade noticias de su empresa/productos/...
2- abre un formulario donde ·el cliente· añade características de sus productos...
3- formulario para añadir un nuevo producto donde se abrirá una ventana en la que saldrán todas las propiedades además de otras opciones como nombre del producto, descripción, precio...
4- etc
5- etc

creo que lo de los campos relacionados sería más bien si yo entrará totas las características en la BD, pero yo solo creo la herramienta, el introduce los datos.. Digamos que el producto son remolques y ahora el cliente tiene dos tipos; remolques para motos y remolques para motos acuáticas. Una vez terminada su web y pasados unos meses el cliente decide que a partir de ahora va a vender remolques para rampa de aeropuertos, deberá poder añadir a su web ese nuevo producto y además añadir las características técnicas del mismo...

lo que no encuentro y he mirado en el manual de MySql es la manera de "alterar" como dices tu una tabla añadiendo nuevos campos por ejemplo.

gracias, saludos
  #6 (permalink)  
Antiguo 23/01/2005, 14:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 23 años
Puntos: 129
Cita:
creo que lo de los campos relacionados sería más bien si yo entrará totas las características en la BD, pero yo solo creo la herramienta, el introduce los datos..
Justamtene ese modelo de datos que te presentè es para hacer de tu sistema lo màs versatil posible. Recueda por si no lo sabes que el número de campos de una tabla no es ilimitado .. (tampo lo son los registros de una tabla .. pero numero de campos vs registros hay una diferencia abismal en tamaño).

Tu puedes crear una secciòn de administraciòn para tu cliente que diga "aquì crea caracteristica tècnica" .. la cual luego verà disponible para crear una de esas "máquinas" .. o incluso .. que la cree sin màs y tu revisas si està creada para crearla o usas la que està creada. El objetivo es que no creen tus usuarios "caracteristicas" tipo "capacidad de carga" y otra tipo "Peso máximo admisible" si son el mismo concepto por ejemplo. Ademàs que a nivel de "normalizaciòn" eso facilitarà las busquedas por esas "caracterìsticas" .. agrupamientos y demàs historias que quieras hacer.


Por ejemplo .. ¿te has planteado como vas a "ver" esas caracteristicas de tu producto que añade tu cliente? .. (segùn tu mètodo que usas "nombres de campos para tus tablas" .. el tema se complica .. Lo mismo que intentar ofrecer un buscador para esas "características" ...

Voy a mover tu mensaje al foro de Base de datos para que discutas estos temas de "normalizaciòn" .. Pero insisto que deberias estudiar sobre "base de datos" y sobre normalizaciòn.

El tema de alterar la estructura de una tabla .. lo tienes en el manual de Mysql oficial:
http://dev.mysql.com/doc/mysql/en/alter-table.html

Un saludo,

Última edición por Cluster; 23/01/2005 a las 14:15
  #7 (permalink)  
Antiguo 24/01/2005, 11:17
 
Fecha de Ingreso: noviembre-2004
Mensajes: 18
Antigüedad: 20 años, 2 meses
Puntos: 0
gracias cluster espero acostumbrarme a la forma de crear y organizar en PHP, para uno que viene del mundo del diseño no es fácil
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:02.