Я поддерживаю глобальное хранилище сайтов в таблице.
website:
id, name, url
1 google http://www.google.com/
2 CNN http://www.cnn.com/
3 SO http://www.stackoverflow.com/
Я поддерживаю справочную таблицу, в которой хранятся идентификаторы сайтов, сохраненные пользователем.
userwebsite
userid, websiteid
[attributes of the table]
Скажитепользователь заинтересован сохранить Microsoft;в свою коллекцию он вводит
www.microsoft.com
Поскольку веб-сайт не существует в глобальном хранилище, он сначала размещается в хранилище, а затем получаетдобавил в свою коллекцию.Теперь содержимое обеих таблиц выглядит примерно так:
website:
id, name, url
1 google http://www.google.com/
2 CNN http://www.cnn.com/
3 SO http://www.stackoverflow.com/
4 msft http://www.microsoft.com
userwebsite:
userid, websiteid
1 4
Скажем, пользователь заинтересован в сохранении Google в своей коллекции, и он вводит
www.google.com
Поскольку веб-сайт ужеСуществующий в коллекции, вместо добавления веб-сайта в коллекцию, в коллекцию пользователей добавляется только ссылка.
Место, где я застрял,
Оба www.google.com и http://www.google.com/
семантически они указывают на один и тот же сайт, но когда вы пытаетесь сопоставить их, они представляют собой две разные строки.Как мне в этом случае сопоставлять строки?
Одно из решений, которое я нахожу, заключается в том, чтобы сначала ввести сайт, чтобы проверить, существует ли домен в коллекции веб-сайтов (возможно, PATINDEX здесь подойдет),Делая это, вы получаете список сайтов, которые имеют имя сохраненного домена.а затем проверьте, существует ли путь на каком-либо из созданных веб-сайтов.Это хорошая идея?
Существует ли существенное решение этой проблемы?Есть ли лучшие методы, чтобы пойти?