Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: правильно ли я делаю БД? первый опыт :-)
 
 автор: RomantikPro   (27.06.2006 в 21:49)   письмо автору
 
 

Прошу не судить строго. Первый опыт. Посмотрите на структуру создаваемой базы данных
что нужно добавить, что убавить и вообще правильно ли выбранно направление.
Спасибо!


//таблица статей
create database magazin;
use magazin;
create table info (
id_info(6) NOT NULL  UNSIGNED AUTO_INCREMENT,
name text, ###собственно статья
time datetime default NULL,  ### время добавления статьи 
id_comment text, ###комментарий к статье
author_first char(15), ###автор статьи имя
author_two char(15), ###фамилия
author_three char(15), ###отчество
PRIMARY KEY (id_info)
);

//таблица ссылок на изображения используемые в статьях 

create table urlimg (
id_url int(6) not null UNSIGNED auto_increment,
id_goods int(6) not null, #ссылка таблицу товаров
url text,        ###ссылка на изображение товара
id_info int(6),  ###внешний ключ к id_info в info
title text,      ###краткое описание изображения
time datetime default NULL, ###дата добавления изображения
primary key (id_url)
);

//таблица заказов

create table zakaz (
id_zakaz int(6) NOT NULL UNSIGNED AUTO_INCREMENT,
id_goods int(6) NOT NULL, #внешний ключ на таблицу товаров
id_client int(6) NOT NULL, #внешний ключ на таблицу клиентов
status int(1) NOT NULL, #заказ выполнен 0 заказ не выполнен 1
many char(2), #валюта 
time datetime default NULL, #время исполнения заказа
timereg datetime default NULL, #время регистрации заказа
tostreethouse text, #улица дом доставки
tocity char(60) #город, куда доставляется товар
id_srok int(1) NOT NULL, #срочность доставки расшифровка в табл turn
id_vid int(1) NOT NULL, #вид доставки внешний ключ к таблице vid_dost 
PRiMARY KEY (id_zakaz)
);

//таблица расшифровки очередности

create table turn (
id_srok int(1) NOT NULL UNSIGNED AUTO_INCREMENT, #срочность доставки
name text,   #описание доставки
primary key (id_srok)
);

//таблица товаров

create table goods (
id_goods int(6) NOT NULL UNSIGNED AUTO_INCREMENT,
name text, #наименование товара
amount decimal(max,2) DEFAULT NULL, #цена за одну единицу товара без НДС
sklad int(1) NOT NULL DEFAULT 'N'  # наличие на складе 0 есть 1 нет N неизвестно
comment text, #описание товара
primary key (id_goods)
);


//вид доставки товаров

create table vid_dost (
id_vid int(1),
namedost char(16), #описание доставки
prim char(1) NOT NULL default '0', #примечание внешний ключ к табл prim(не создана)
primary key (id_vid)
);

//таблица клиентов
create client (
id_client int(6) NOT NULL UNSIGNED AUTO_INCREMENT,
namecli text, #наименование клиента
city char(60) NOT NULL default '0', #город клиента
raion char(32), #район
street char(60), #улица
home char(6) NOT NULL default '0', #дом
korp char(6) NOT NULL default '0', #корпус
priznak_cli char(1), #признак клиента 1 юридическое лицо 0 физическое лицо
tel char(16) NOT NULL default '0', #телефон городской
mobiltel char(16) NOT NULL default '0', #мобильный телефон
email char(30) NOT NULL default '0', #электронный почтовый адрес
web text, #домашняя страничка в интернет
account char(25) NOT NULL default '0', #счет клиента,
corr_acc char(25) NOT NULL default '0', #корреспондентский счет банка клиента
inn char(25) NOT NULL default '0', #ИНН
namebank char(60) NOT NULL default '0', #наименование банка клиента
bik char(25) NOT NULL default '0', #БИК банка клиента
ogrn char(25) NOT NULL default '0', #ОГРН - основной государственный регистрационный номер
okpo char(25) NOT NULL default '0', #ОКПО - общероссийский классификатор предприятий и организаций
okogu char(25) NOT NULL default '0', #ОКОГУ - общероссийский классификатор органа государственного управления
okato char(25) NOT NULL default '0', #ОКАТО - общероссийский классификатор административно-территориального образования
okved char(25) NOT NULL default '0', #ОКВЭД - общероссийский классификатор видов экономической деятельности
okfs char(25) NOT NULL default '0', #ОКФС - общероссийский классификатор форм собственности
okopf char(25) NOT NULL default '0', #ОКОПФ - общероссийский классификатор организационно-правовых форм хозяйствующих субъектов
oksm char(25) NOT NULL default '0', #ОКСМ - общероссийский классификатор стран мира
passw text, #пароль
login text, #логин при регистрации
primary key (id_client, inn)
);

   
 
 автор: cheops   (27.06.2006 в 23:48)   письмо автору
 
   для: RomantikPro   (27.06.2006 в 21:49)
 

А таблица urlimg с какой таблице связана? С info? Изображения приводятся в конце таблицы?

   
 
 автор: RomantikPro   (28.06.2006 в 00:36)   письмо автору
 
   для: cheops   (27.06.2006 в 23:48)
 

>А таблица urlimg с какой таблице связана? С info?
>Изображения приводятся в конце таблицы?

таблица urlimg связана с таблицей info ....наверное, следует убрать поле id_goods из таблицы urlimg и просто добавить поле url (ссылку на папку с изображением товара) в таблице goods (таблица товаров), тогда таблица urlimg будет связана только с таблицей info и не будет неясностей...

   
 
 автор: Boss   (28.06.2006 в 00:42)   письмо автору
 
   для: RomantikPro   (27.06.2006 в 21:49)
 

Последня таблица:

ты забыл поставить table, и лучше убрать UNSIGNED

Вот так:
CREATE TABLE CLIENT (
id_client int( 6 ) NOT NULL AUTO_INCREMENT ,
namecli text,
#наименование клиента 
city char( 60 ) NOT NULL default '0',
#город клиента 
raion char( 32 ) ,
#район 
street char( 60 ) ,
#улица 
home char( 6 ) NOT NULL default '0',
#дом 
korp char( 6 ) NOT NULL default '0',
#корпус 
priznak_cli char( 1 ) ,
#признак клиента 1 юридическое лицо 0 физическое лицо 
tel char( 16 ) NOT NULL default '0',
#телефон городской 
mobiltel char( 16 ) NOT NULL default '0',
#мобильный телефон 
email char( 30 ) NOT NULL default '0',
#электронный почтовый адрес 
web text,
#домашняя страничка в интернет 
account char( 25 ) NOT NULL default '0',
#счет клиента, 
corr_acc char( 25 ) NOT NULL default '0',
#корреспондентский счет банка клиента 
inn char( 25 ) NOT NULL default '0',
#ИНН 
namebank char( 60 ) NOT NULL default '0',
#наименование банка клиента 
bik char( 25 ) NOT NULL default '0',
#БИК банка клиента 
ogrn char( 25 ) NOT NULL default '0',
#ОГРН - основной государственный регистрационный номер 
okpo char( 25 ) NOT NULL default '0',
#ОКПО - общероссийский классификатор предприятий и организаций 
okogu char( 25 ) NOT NULL default '0',
#ОКОГУ - общероссийский классификатор органа государственного управления 
okato char( 25 ) NOT NULL default '0',
#ОКАТО - общероссийский классификатор административно-территориального образования 
okved char( 25 ) NOT NULL default '0',
#ОКВЭД - общероссийский классификатор видов экономической деятельности 
okfs char( 25 ) NOT NULL default '0',
#ОКФС - общероссийский классификатор форм собственности 
okopf char( 25 ) NOT NULL default '0',
#ОКОПФ - общероссийский классификатор организационно-правовых форм хозяйствующих субъектов 
oksm char( 25 ) NOT NULL default '0',
#ОКСМ - общероссийский классификатор стран мира 
passw text,
#пароль 
login text,
#логин при регистрации 
PRIMARY KEY ( id_client, inn ) 

   
 
 автор: Unkind™   (28.06.2006 в 02:18)   письмо автору
 
   для: Boss   (28.06.2006 в 00:42)
 

ты забыл поставить table, и лучше убрать UNSIGNED
А чем лучше? Наверное, отрицательное значение тут не понадобится...

   
 
 автор: Trianon   (28.06.2006 в 09:40)   письмо автору
 
   для: RomantikPro   (27.06.2006 в 21:49)
 

Вот этот момент я не понял: PRIMARY KEY ( id_client, inn )

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования