|
|
|
| Такой вопрос:
есть система, которая хранит объявления пользователей. Они могут быть разного типа следовательно они хранятся в разных таблицах, но у каждого сообщения должен быть уникальный id внутри системы. Я решил вопрос так:
в одной таблице хранятся ид объявления в системе, его первичный ключ в собственной таблице и имя таблицы, в которой оно хранится. Но мне такое решение кажется кривым. Есть ли какие нибудь альтернативы?
Заранее спаибо. | |
|
|
|
|
|
|
|
для: korwin
(26.04.2005 в 17:03)
| | Вариант:
Обьявления хранятся в одной таблице, а вторая таблица типы обьявлений
Например:
Обьявления
id обьявления
text текст его
user автор
part_id к какому тину относится
Типы обьявлений
part_id тип обьявлений
name название типа | |
|
|
|
|
|
|
|
для: Axxil
(26.04.2005 в 17:57)
| | Если я правильно тебя понял, то это не то:)
Дело в том что все объявления не могут хранится в одной таблице, т.к. они совершенно разные по форме т.е., например, типы объявлений:
1) просто текст
2) категория товара, цена, направление пордажи(продаю покупаю меняю)
3) производитель, модель, прочие характеристики
и т д
Поскольку необходимо проводить поиск по различным категориям и для каждого объявления своя форма поиска, то я раскидал их в разные таблицы
мало того в будущем может увеличится число типов, а по моему проще создать специальную таблицу, чем изменять структуру существующей. | |
|
|
|
|
|
|
|
для: korwin
(26.04.2005 в 19:59)
| | Для этого есть такое понятие как католог. Введи дополнительную таблицу-каталог с полями:
1) ИД каталога
2) Название каталога
3) Сслылка на каталог предка (если 0 - то это корень)
После чего введи в свою базу с обьявлениями поле с ИД_каталога и вводи туда его нужное значение. Вот и получится у тебя разные типы обьявлений :-) | |
|
|
|
|
|
|
|
для: Dimrix
(26.04.2005 в 20:09)
| | не уверен, что понял. можно на моем примере? | |
|
|
|
|
|
|
|
для: 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. каталоги приемлимы во многих случаях, так как они дают возможность при появлении новых типов и прочего создавать новое дерево типов. | |
|
|
|
|
|
|
|
для: korwin
(26.04.2005 в 17:03)
| | Хм... так а вы используйте составной ключ из уникального номера таблицы (уникален в пределах одной таблицы) и номера таблицы - такой ключ будет уникален в пределах системы. Записываете номер таблицы в какой-нибудь 8 разряд числа. | |
|
|
|