CREATE TABLE `User` (
`user_id` int not null,
...
);
CREATE TABLE `Product` (
`product_id` int not null,
`product_name` varchar(100),
...
);
CREATE TABLE `UserPrice` (
`user_price_id` int not null,
`user_id` int not null,
`product_id` int not null,
`price` decimal(10, 2) not null,
...
);
Чтобы получить все товары, которые продает User с id = 10:
SELECT `Product`.*, `UserPrice`.`price`
FROM `UserPrice`
INNER JOIN `Product` ON `Product`.`product_id` = `UserPrice`.`product_id`
WHERE `user_id` = 10
Две таблицы (ну таблица с пользователями и так есть, верно?), и никаких сотен полей.