Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> организация БД 
V
    Опции темы
MoLeX
  Дата 13.3.2009, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



есть БД, в которой храниться ссылка
Код

CREATE TABLE IF NOT EXISTS `page` (
  `id` int(11) NOT NULL auto_increment COMMENT 'ID страницы',
  `links` varchar(128) character set utf8 NOT NULL COMMENT 'Название ссылки',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

INSERT INTO `pages` (`id`, `links`) VALUES (1, 'index');
INSERT INTO `pages` (`id`, `links`) VALUES (2, 'news');
INSERT INTO `pages` (`id`, `links`) VALUES (3, 'text');


т.е. из url'а http://site.name/index.html в БД храниться только index

но может получиться и такая ссылка http://site.name/index/news/text/index.html, ией будут соответствовать 2 результата (в результате конфликт).


Вопрос: как лучше организовать хранение ссылок.
Мне только приходит в голову только этот вариант: хранить полную ссылку, т.е. что-то наподобие:

Код

INSERT INTO `pages` (`id`, `links`) VALUES (1, 'index');
INSERT INTO `pages` (`id`, `links`) VALUES (2, 'index/news');
INSERT INTO `pages` (`id`, `links`) VALUES (3, 'index/news/text');


Добавлено через 37 секунд
P.S. Может есть какой-нибудь другой способ, красивый и лучше?!


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
azesmcar
Дата 13.3.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



может так?

link_types
Код

D       URL              FOLDER
1         sitename     index/news
2         sitename     index/news/text


Код

ID       LINK              FOLDER_ID
1             index.html     1
1             index.html     2


а может я неправильно понял вопрос smile

Добавлено через 1 минуту и 33 секунды
Цитата

но может получиться и такая ссылка http://site.name/index/news/text/index.html, ией будут соответствовать 2 результата (в результате конфликт).


в результате какой операции может получится? И где конфликт?
PM   Вверх
MoLeX
Дата 13.3.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



Цитата(azesmcar @  13.3.2009,  13:20 Найти цитируемый пост)
И где конфликт? 

а конфликт заключается в том что в БД будут две одинаковые записи (или более), и в место скажем перенапрваления со страницы пользователь получит совсем другое (пример)

Добавлено через 2 минуты и 46 секунд
Цитата(azesmcar @  13.3.2009,  13:20 Найти цитируемый пост)
link_types
Код

D       URL              FOLDER
1         sitename     index/news
2         sitename     index/news/text



Код

ID       LINK              FOLDER_ID
1             index.html     1
1             index.html     2




выход. но связанные таблицы получаются...



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
azesmcar
Дата 13.3.2009, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



Цитата

выход. но связанные таблицы получаются...


а разве это плохо?

Добавлено через 44 секунды
атомарность полей - есть хорошо и соответствует правилам нормализации..точнее одному правилу ;)

Добавлено через 2 минуты и 42 секунды
к тому же в этом случае вместо текста для каждой ссылки в папке index/news/text будет хранится только число..база получается более оптимизированной
PM   Вверх
MoLeX
Дата 13.3.2009, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



Цитата(azesmcar @  13.3.2009,  13:46 Найти цитируемый пост)
а разве это плохо?

да нет. просто не хотелось... а выхода похоже нет другого


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
azesmcar
Дата 13.3.2009, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



Цитата

а выхода похоже нет другого 


ну можно создать view для этого запроса..а можно узнать чем обусловлено нежелание создавать таблицу?
PM   Вверх
gta4kv
Дата 13.3.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 4
Всего: 91



MoLeX, реально тупишь. Зачем с бубном танцевать если можно просто две таблицы связать
PM MAIL   Вверх
MoLeX
Дата 15.3.2009, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



gta4kv
кофе перепил  smile 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0740 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.