¿como relacionar 2 tablas de 1 bbdd?

Hola, vereis tengo un sistema de registro y sesiones en una tabla de una bbdd y parece que funciona bien. Pero ahora quisiera que los usuarios pudieran subir archivos solo de img a la bbdd.
Como es logico el usuario debe iniciar session para poder subir img. Mi pregunta es ¿debo crear otra tabla solo para las imgs? o ¿con añadir los campos necesarios se suben las img al id del usuario?
Lo mejor de caerse al tropezar, es volverse a levantar.
Hola:

No te aconsejo que subas las imágenes directamente a la base de datos, pues es muy costoso para el servidor (subir una imagen no es nada, pero ten en cuenta que pueden haber varios usuarios conectados haciendo lo mismo). En su lugar deberías asociar las imágenes en base al ID del usuario (pues el ID no lo podrá modificar).

Por ejemplo: un usuario con ID 1 sube una imagen. Lo que deberías hacer es crear una carpeta llamada 1 y dentro de esta carpeta guardar la imagen. Luego puedes guardar la URL en la base de datos.

Como sea que decidas hacerlo, sí necesitas una tabla dedicada para las imágenes, pues ¿cómo lo harás si un mismo usuario sube 10 fotos? Tendrías que duplicar el registro del usuario 10 veces, lo que significa que tu base de datos esta mal diseñada.

En lugar de duplicar los datos creas una tabla y cada registro lo asocias al ID del usuario. Ejemplo de tabla:

CREATE TABLE user_images (
  image_id MEDIUMINT(8) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  image_name VARCHAR(300) NOT NULL,
  image_url TEXT NOT NULL,
  user_id MEDIUMINT(8) UNSIGNED NOT NULL, // El tamaño y el tipo deberían ser el mismo que se utilizó en la tabla donde está la información de usuarios.
  INDEX (user_id)
);

Saludos.

P.D.: si tu servidor utiliza Linux (y debería tener) como sistema operativo, entonces tendrás que asignarle permisos 0777 a la carpeta donde se suban las imágenes.
No se si te entiendo skaparate. Mira, hasta ahora tengo en una bbdd llamada (usuarios) con los campos de registro tipicos (id, nombre, e-mail, contraseña).
Ahora he creado un sistema de session para que el usuario pueda acceder a unas paginas privadas donde pueda subir imagenes.
Por otro lado tengo otra bbdd llamada (subir_imagenes) con los campos (imagen_id, nombre, url). Las imagenes se guardan en un archivo.
Mi intencion es que todo aquel que esté registrado e inicie session pueda subir imagenes a ese archivo o si lo prefiere pueda ver las imagenes que cualquiera haya subido a ese archivo.
Tu me planteas otra cuestion (creo entender) y es ¿que pasaría si un usuario sube mas de 1 imagen?
Me respondo: se crearía otro registro de subida de imagen con su imagen_id, nombre y url. De esa manera un usuario podría tener tantos registros como img subidas ¿no?
O ¿hay un sistema mejor?
O ¿con añadir los campos de la bbdd (subir_imagenes) a la de (usuarios) tendría bastante?
Lo mejor de caerse al tropezar, es volverse a levantar.
No no no, está bien, es solo que como preguntas ¿debo crear otra tabla solo para las imgs? supuse que no tenías otra tabla.

¿con añadir los campos de la bbdd (subir_imagenes) a la de (usuarios) tendría bastante?

No debes añadir todos los campos, sólo el ID del usuario. En SQL, los ID se utilizan para relacionar las tablas entre sí.
Eso es precisamente lo que no se hacer, relacionar el id de un usuario de una tabla con la imagen_id de la otra tabla.
Entonces lo que he hecho es añadir al tabla de img un campo "nick" que tomo del registro o session.
¿como lo ves?
Lo mejor de caerse al tropezar, es volverse a levantar.
Es demasiado simple,

mira en la tabla usuarios tienes user_id o algo similar , ahora en la tabla de imagenes crea un campo que se llame igual user_id aparte del id principal , ese user_id no lo pongas en auto increment y ponle INT 11,

despues cuando un usuario inserte una imagen, obtienes datos de el atravez de cookie o session lo que uses, si obtienes su nombre haces una simple consulta con un WHERE, asi

si el usuario que inserta imagen se llama "surkaiser" harias algo asi para obtener el id de ese usuario

$obtener = mysql_query("SELECT * FROM usuario WHERE usuario='".$usuario."'");

Ahi la variable usuario contendra el nombre de usuario, igual hay que añadirle comprobaciones y demas

Bien como hemos obtenido la fila donde se encuentra ese usuario obtenemos los datos de esa fila asi:

$usuarios = mysql_fetch_assoc($obtener);

Bien ahora como ya obtuvimos cual id es y para aclararlo lo ponemos en una variable:

$usuario_actual = $usuarios["user_id"];

Y listo tenemos casi todo relacionado solo farta insertar los datos de la imagen, entonces hacemos el insert

$insertar = mysql_query("INSERT INTO imagenes(tuscampos,user_id) VALUES()");

Y listo tendriamos todo relacionado ahora para obtener las imagenes que subio un usuario ya es mas facil

haces el primer paso obtener el id del usuario y con eso otro select para la imagen asi:

$obtener = mysql_query("SELECT * FROM imagenes WHERE user_id='".$usuario_actual."'");


Saludos!!
Gracias SurKaiser me diste la idea y me quedo asi. Añadí un campo nick que lo toma de $_SESSION a la tabla imagenes y listo.
Asi tengo por un lado una tabla de usuarios para registros y login, y por otra la tabla de subidas de img con el nick del user.
Y queda way
Si el user quiere ver sus img tengo el Select img from mitabla where nick='$_SESSION'
Lo mejor de caerse al tropezar, es volverse a levantar.
Mas que la idea te di la resolucion del problema,

Que bien que ya se haya solucionado y entendido...


Saludos y sigue asi y aprenderas mucho mas xD
Po si, gracias.
Ahora voy a crear otro tema en Mysql, porque por mas que googleo no me entero de como limitar el tamaño d ela img subidas.
Lo mejor de caerse al tropezar, es volverse a levantar.
Buenas noches, soy nueva aqui solo quiero que me aclaren algo, estoy diseñando una base de datos para un sisitema de facturacion e inventario, pero tengo un dilema con respecto a la factura, se supone que en mi sistema se debe gemerar el numero de factura. Alguien pe podria explicar como lo hago es una funcion de php o es que tengo que construir una tabla u llenarla con el codigo ? se los agradeceria enormemente.
A ver, me imagino que tendras una pagina a la que al introdudirles los datos del cliente te hará una seleccion de tu bbdd para poder imprimirlos ¿no?
Bien pues un esa pagina que se va a imprimir, en el campo nº factura ponle algo asi:
 $num_factura = ($row['numero_factura']) +1;
De esa manera se ira incrementando en 1 cada impresion de factura que hagas.