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

Форум MySQL

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

 

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

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

тема: уникальный id в системе
 
 автор: korwin   (26.04.2005 в 17:03)   письмо автору
 
 

Такой вопрос:
есть система, которая хранит объявления пользователей. Они могут быть разного типа следовательно они хранятся в разных таблицах, но у каждого сообщения должен быть уникальный id внутри системы. Я решил вопрос так:
в одной таблице хранятся ид объявления в системе, его первичный ключ в собственной таблице и имя таблицы, в которой оно хранится. Но мне такое решение кажется кривым. Есть ли какие нибудь альтернативы?
Заранее спаибо.

   
 
 автор: Axxil   (26.04.2005 в 17:57)   письмо автору
 
   для: korwin   (26.04.2005 в 17:03)
 

Вариант:
Обьявления хранятся в одной таблице, а вторая таблица типы обьявлений
Например:
Обьявления
id обьявления
text текст его
user автор
part_id к какому тину относится
Типы обьявлений
part_id тип обьявлений
name название типа

   
 
 автор: korwin   (26.04.2005 в 19:59)   письмо автору
 
   для: Axxil   (26.04.2005 в 17:57)
 

Если я правильно тебя понял, то это не то:)
Дело в том что все объявления не могут хранится в одной таблице, т.к. они совершенно разные по форме т.е., например, типы объявлений:
1) просто текст
2) категория товара, цена, направление пордажи(продаю покупаю меняю)
3) производитель, модель, прочие характеристики
и т д
Поскольку необходимо проводить поиск по различным категориям и для каждого объявления своя форма поиска, то я раскидал их в разные таблицы
мало того в будущем может увеличится число типов, а по моему проще создать специальную таблицу, чем изменять структуру существующей.

   
 
 автор: Dimrix   (26.04.2005 в 20:09)   письмо автору
 
   для: korwin   (26.04.2005 в 19:59)
 

Для этого есть такое понятие как католог. Введи дополнительную таблицу-каталог с полями:
1) ИД каталога
2) Название каталога
3) Сслылка на каталог предка (если 0 - то это корень)
После чего введи в свою базу с обьявлениями поле с ИД_каталога и вводи туда его нужное значение. Вот и получится у тебя разные типы обьявлений :-)

   
 
 автор: korwin   (26.04.2005 в 22:35)   письмо автору
 
   для: Dimrix   (26.04.2005 в 20:09)
 

не уверен, что понял. можно на моем примере?

   
 
 автор: Dimrix   (27.04.2005 в 14:05)   письмо автору
 
   для: korwin   (26.04.2005 в 19:59)
 

Таблица обьявлений:
ID(*), Ob_text(п.1), ID_type(п.2), Id_mod(п.3),...

Таблица-каталог типов(п.2):
ID_type(*), NameT(наименование типа: продажа, покупка, обмен и т.п.), KatTov(категория), Price(цена)...

Таблица производителей(п.3.1)
ID_pr, NamePr(наименование производителя),... прочая инфа о производителе

Таблица-каталог производителей(п.3)
ID_mod, ID_pr(наименование производителя), NameM(наименование модели), Charcters(характеристика)... прочая инфа о производителе

Последние две таблицы лучше разделить, так как моделей по все видимости более 1 для каждого производителя в среднем, а если так, то это уменьшит обьм хранимых данных (толи хранить число "149" или строку "ООО ВНИИ "Компресормаш"")

P.S. каталоги приемлимы во многих случаях, так как они дают возможность при появлении новых типов и прочего создавать новое дерево типов.

   
 
 автор: cheops   (26.04.2005 в 23:07)   письмо автору
 
   для: korwin   (26.04.2005 в 17:03)
 

Хм... так а вы используйте составной ключ из уникального номера таблицы (уникален в пределах одной таблицы) и номера таблицы - такой ключ будет уникален в пределах системы. Записываете номер таблицы в какой-нибудь 8 разряд числа.

   
Rambler's Top100
вверх

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