SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.11.2007 08:27:45

Kirill
Участник
Зарегистрирован: 11.10.2007
Сообщений: 19

Как правильно создать базу

Как правильно написать базу для этой картинки??????
http://texnocity.ru/1.gif

Неактивен

 

#2 19.11.2007 12:20:59

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Как правильно создать базу

Можно создать 3 таблицы:
1. товары - id, название, цена
2. склады - id, название, адрес
3. наличие_товара - id_склада, id_товара, количество_товара

Неактивен

 

#3 19.11.2007 12:27:27

Kirill
Участник
Зарегистрирован: 11.10.2007
Сообщений: 19

Re: Как правильно создать базу

rgbeast написал:

Можно создать 3 таблицы:
1. товары - id, название, цена
2. склады - id, название, адрес
3. наличие_товара - id_склада, id_товара, количество_товара

А не льзя это как то в 1 таблице сделать у меня праис формируется 1С и сохраняется целиком я не смогу делить его

Неактивен

 

#4 19.11.2007 12:28:15

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Как правильно создать базу

я привел Вам нормальную форму базы, у Вас на картинке ненормализованная форма (то есть есть повторяющиеся по сути колонки). Из приведенных таблиц Ваша картинка получается многкратными JOIN-ами.
SELECT товары.название, наличие1.количество_товара, наличие1.количество_товара*товары.цена, наличие2.количество_товара, наличие2.количество_товара*товары.цена from товары LEFT JOIN наличие_товаров наличие1 ON наличие1.id_товара=товары.id AND наличие1.id_склада=1, LEFT JOIN наличие_товаров наличие2 ON наличие2.id_товара=товары.id AND наличие2.id_склада=2

Неактивен

 

#5 19.11.2007 12:31:12

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Как правильно создать базу

в одной таблице сделать никаких проблем нет:
CREATE TABLE tovar ( id int(11) primary_key auto_increment, price float(7,2), stock1_count int not null, stock2_count int not null, stock3_count int not null);

Неактивен

 

#6 19.11.2007 12:46:22

Kirill
Участник
Зарегистрирован: 11.10.2007
Сообщений: 19

Re: Как правильно создать базу

rgbeast написал:

в одной таблице сделать никаких проблем нет:
CREATE TABLE tovar ( id int(11) primary_key auto_increment, price float(7,2), stock1_count int not null, stock2_count int not null, stock3_count int not null);

У меня выпадывает вот эта ошибка

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'the manual that corresponds to your MySQL server version for the right syntax to' at line 1
mysql> mysql> CREATE TABLE tovar (id int(11) primary_key auto_increment, price float(7,2), stock1_count int not null, stock2_count int not null, stock3_count int not null);

Неактивен

 

#7 19.11.2007 12:50:09

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Как правильно создать базу

да, primary key через пробел, а не через _.
Количество полей типа stock_count должно быть таким же, сколько у Вас складов (на картинке 5).

Неактивен

 

#8 20.11.2007 08:59:29

Kirill
Участник
Зарегистрирован: 11.10.2007
Сообщений: 19

Re: Как правильно создать базу

rgbeast написал:

да, primary key через пробел, а не через _.
Количество полей типа stock_count должно быть таким же, сколько у Вас складов (на картинке 5).

одинаковые то они не  одинаковы так как это разные магазины и на них разный товар и я при этом хочу что бы данные я вгружал в эту базу из excel

Неактивен

 

#9 20.11.2007 09:15:48

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Как правильно создать базу

Kirill написал:

одинаковые то они не  одинаковы так как это разные магазины и на них разный товар и я при этом хочу что бы данные я вгружал в эту базу из excel

Создайте структуру таблиц, соответствующую структуре таблиц Excel. Делайте экспорт в CSV из Excel, а затем загружайте с помощью LOAD DATA INFILE ... (при этом можно менять порядок колонок и пропускать колонки, если необходимо)

Неактивен

 

#10 20.11.2007 09:32:15

Kirill
Участник
Зарегистрирован: 11.10.2007
Сообщений: 19

Re: Как правильно создать базу

rgbeast написал:

Kirill написал:

одинаковые то они не  одинаковы так как это разные магазины и на них разный товар и я при этом хочу что бы данные я вгружал в эту базу из excel

Создайте структуру таблиц, соответствующую структуре таблиц Excel. Делайте экспорт в CSV из Excel, а затем загружайте с помощью LOAD DATA INFILE ... (при этом можно менять порядок колонок и пропускать колонки, если необходимо)

http://www.texnocity.ru/set/gif.gif

вот у меня пожалуста помогите уже не знаю что сделать. Базу главное

Неактивен

 

#11 20.11.2007 10:10:00

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Как правильно создать базу

У Вас Excel-таблица ненормализована, содержит исходные данные и вычисленную информацию. Один из путей - создать простую таблицу CREATE TABLE raw (A varchar(100), B varchar(100), C varchar(100), ..., M varchar(100)) и загрузить в нее всю таблицу как есть, а затем скриптом на PHP пройтись по таблице и занести данные в три таблицы, которые я привел в самом первом ответе.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson