powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Архив документов.
15 сообщений из 15, страница 1 из 1
Архив документов.
    #32933376
McLighter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак я сделал систему документооборота. Теперь у меня
много вопросов.
1. Как одним запросом Insert можно вставить данные в несколько таблиц.
2. У меня индексация записей по primary key = имени файла. Знаю что это неочень хорошо, но как иначе.
3. В связи с этим проблема. Я добавляю новый файл. В базу заносится его имя. теперь
я копирую файл на сервер с индексным именем. Для этого надо узнать индекс файла который ему присвоился.
Получается insert - select - copy. Можно ли сократить эту цепочку.
...
Рейтинг: 0 / 0
Архив документов.
    #32933462
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>1. Как одним запросом Insert можно вставить данные в несколько таблиц.
никак
>2. У меня индексация записей по primary key = имени файла. Знаю что это неочень хорошо, но как иначе.
Иначе? Чем плох варант с полем автоинкремента?
>я копирую файл на сервер с индексным именем. Для этого надо узнать индекс файла который ему присвоился.
Ничего не понял. Зачем узнавать индекс файла, если он равен имени файла, и это имя. как я понял, ты знаешь, потому что ты только что сам добавил его в базу.
>Получается insert - select - copy. Можно ли сократить эту цепочку.
Не получается, потому что не понятен абзац выше.
...
Рейтинг: 0 / 0
Архив документов.
    #32933545
McLighter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На счет автоинкремента. Во многих базах данных идентификатор записи в таблице вообще не число, это просто уникальное значение. В mysql это число, но использовать его все равно не рекомендуют, я не знаю почему. Так говорят профессионалы. Поэтому и спрашиваю есть ли варианты.
Насчет файлов. Есть файл Документ12.doc. Его помещают в мой веб архив. В моем каталоге на сервере я хочу хранить его как 1.doc. (далее 2,3,4) Поэтому имя файла копируется в базу. Чтоб пользователь знал его имя. А файл переименовывается в индексное имя и копируется на сервер. Вот и получается прописываю в базу имя. Вытаскиваю по этому имени соответствующий индекс. И переименовываю копируемый файл в этот индекс+разрешение. Получается Insert-Select-Copy
...
Рейтинг: 0 / 0
Архив документов.
    #32933615
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет автоинкремента. Не знаю, чем плох автоинкремент???? Грубо говоря Чем уникальный набор ЦИФР отлачется от уникального набора БУКВ??? Автоинкремент гарантированно создаст новое уникальное значение. Какие проблемы????
авторА файл переименовывается в индексное имя и копируется на сервер.
Сам переименовывается? Если сам - то это просто уникальная технология..;))))
А если серьезно, то напиши стуркутру таблицы, в которую ты пишешь данные о файле. Потому как я не могу понять - индекс у тебя автоинкремент или ты сам вписываешь цифру??.. вобщем, давай структуру БД...
З.Ы. LAST_INSERT_ID()
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Архив документов.
    #32933627
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
McLighterно использовать его все равно не рекомендуют, я не знаю почему. Так говорят профессионалы. Поэтому и спрашиваю есть ли варианты. Вариант есть - не слушать своих профессионалов или разобраться ПОЧЕМУ они не советуют так делать.

auto_increment придуман прежде всего для первичных ключей.
При использовании auto_increment твой файл пишется по такой цепочке:
1. insert
2. $id = mysql_insert_id(); // получим ПК вставленной записи
3. создаем файл $id.".doc"
...
Рейтинг: 0 / 0
Архив документов.
    #32933666
McLighter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот моя база.
create table dirs(id_dir int3(5) primary key not null auto_increment, name_dir varchar(30), dir_comments varchar(100));

create table document(id_document int3(6) primary key not null auto_increment, doc_name varchar(50), id_author int3(5), doc_comment varchar(150), id_type int3(5), id_access int3(5), made_date DATE, id_dir int3(5));

create table authors(id_author int3(5) primary key not null auto_increment, family varchar(30), name varchar(30), login varchar(30), password varchar(7), id_otdel int3(5));

create table otdel(id_otdel int3(5) primary key not null auto_increment, otdel_name varchar(30));

create table docs_control(id_control int3(5) primary key not null auto_increment, login varchar(30), time DATE, id_document int3(6));

create table access(id_access int3(5) primary key not null auto_increment, access_type varchar(5));

create table type(id_type int3(5) primary key not null auto_increment, type_name varchar(20));
...
Рейтинг: 0 / 0
Архив документов.
    #32933673
oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c>1. Как одним запросом Insert можно вставить данные в несколько таблиц.
никак
>2. У меня индексация записей по primary key = имени файла. Знаю что это неочень хорошо, но как иначе.
Иначе? Чем плох варант с полем автоинкремента?
>я копирую файл на сервер с индексным именем. Для этого надо узнать индекс файла который ему присвоился.
Ничего не понял. Зачем узнавать индекс файла, если он равен имени файла, и это имя. как я понял, ты знаешь, потому что ты только что сам добавил его в базу.
>Получается insert - select - copy. Можно ли сократить эту цепочку.
Не получается, потому что не понятен абзац выше.

Ну вообще то вставить можно, например в Оракле делаешь представление, и затем вешаешь INSTEAD OFF триггер.
...
Рейтинг: 0 / 0
Архив документов.
    #32933698
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
McLighterВот моя база.
create table dirs(id_dir int3(5) primary key not null auto_increment, name_dir varchar(30), dir_comments varchar(100));

create table document(id_document int3(6) primary key not null auto_increment, doc_name varchar(50), id_author int3(5), doc_comment varchar(150), id_type int3(5), id_access int3(5), made_date DATE, id_dir int3(5));

create table authors(id_author int3(5) primary key not null auto_increment, family varchar(30), name varchar(30), login varchar(30), password varchar(7), id_otdel int3(5));

create table otdel(id_otdel int3(5) primary key not null auto_increment, otdel_name varchar(30));

create table docs_control(id_control int3(5) primary key not null auto_increment, login varchar(30), time DATE, id_document int3(6));

create table access(id_access int3(5) primary key not null auto_increment, access_type varchar(5));

create table type(id_type int3(5) primary key not null auto_increment, type_name varchar(20));

2 вопроса :
1. сам как думаешь, то что ты выше написал легко прочитать ?
потрудись оформлять свои вопросы так, чтобы их было легко и приятно читать
2. Какое отношение к вопросу имеют все таблицы, кроме documents ?
...
Рейтинг: 0 / 0
Архив документов.
    #32933700
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в Мускуле до 4-й версии не было вложенных запросов... Оракл - это совершенно другой уровень.
Как я и думал почитай про mysql_last_insert_id() .
Макс М. тебе написал алгоритм.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Архив документов.
    #32933701
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этой теме явно не указано, конечно, но из предыдущих ясно, что речь идёт о MySQL, к чему тут была сентенция про Oracle? В MySQL ХП и триггера есть только в 5 версии, которая, на данный момент, в стадии альфы, делать на ней документооборот -- это опыты над людьми, а они запрещены ЮНЕСКО.
...
Рейтинг: 0 / 0
Архив документов.
    #32933710
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, когда просят написАть структуру ТАБЛИЦЫ, нужно написАть структуру таблицы, а не всей БАЗЫ....
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Архив документов.
    #32933744
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Тема закрыта.
...
Рейтинг: 0 / 0
Архив документов.
    #32933758
McLighter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше написать все сразу. Если нужна схема могу ее сделать. А Oracle? Oracle мне не нужен. Не до него сейчас.
...
Рейтинг: 0 / 0
Архив документов.
    #32933763
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
McLighterЛучше написать все сразу. Если нужна схема могу ее сделать. А Oracle? Oracle мне не нужен. Не до него сейчас. думаешь, мы очень любим читать чужой код ?
...
Рейтинг: 0 / 0
Архив документов.
    #32933777
McLighter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда у меня вопрос я стараюсь описать проблему более широко. А если все раскладывать по полочкам, то скорее сам дойдешь до истины. Согласен с Guest'ом ТЕМА ЗАКРЫТА! Я все сделаю САМ!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Архив документов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]