![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: 4 Всего: 6 |
Привет всем!
Хочу услышать мнения по поводу того, как можно лучшим образом построить таблицы MqSql. Вообщем мы имеем 2(две) таблицы, в эти таблицы заносяться объявления, в одну "купля" в другую "продажа". Вопрос: Как мне организовать работу PHP+MySql так, чтобы по "одному" идентификатору(например: 112) определять в какой таблицы выбирать данные, т.е. определить c одного ID(112) какой тип сделки купля или продажа. Мой вариант решения пока такой: Прибавлять цифры перед ID, к примеру 1-значит покупка, 2-значит продажа. Заносить в таблицы при добавлении юзером, обычные ID (1,2,3...154,...987), а при выборке прибавлять цифру перед этим номером(11,12,13...1154,...1987). пример:в таблице покупки 43, при выборке 143-значит покупка, в таблице продажи 52, при выборке 252-значит продажа. Этот варик не плох, но имеется ряд нежелательных последствий, а именно: 1. после 99(199), появляется сразу тысяча - 100(1100), и т.д. - 9999(19999). 2. функции которые должны обрабатывать этот номер и соответственно после парсировки должна проходить выборка с определенной таблицы - это немного напряжно. Плюсы: существуют две таблицы, а значит с ними легче работать, меньше нагрузка на базу при выборке и занесении объяв. |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
Единственный правильный вариант -- хранить все объявления в одной таблице и каждому сопоставлять тип объявления из второй таблицы.
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: 4 Всего: 6 |
почему?
какие плюсы у твоего варика, и минусы у моего? Добавлено через 2 минуты и 17 секунд и еще... а если я например хочу чтобы юзер смог визуально отличать что за обьявы(покупка, продажа) т.е. 245-значит продажа, 145-значит покупка а по твоему варику получается, что все будут вида 145, 146, 147 ... или я ошибаюсь? |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
А пользователь должен сам метом дидукции дойти до того, что 245 это объявление о продаже?
Твой: Минус один -- необоснованное хранение обнородных данных в разных таблицах. А если появятся объявления о аренде? ) Плюсов -- нет Мой: Да нет тут плюсов и минусов. Просто это правильная, логичная и удобная структура. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: 4 Всего: 6 |
В том то и дело... поработав с данной структурой занесения и выборки инфы, я начинаю понимать, что прироста в скорости и выгоды от того что у тебя две таблицы особо не получишь. Поэтому и спрашиваю совета.
Есть ли у кого еще замечания, готов выслушать... |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Дело в том, что хранение в одной таблице однородных данных - это аксиома. Азбука построения БД.
И как раз наоборот - это денормализацию данных надо обосновывать. Рассказывать, какие будут плюсы. Если они будут.
для этого надо в адресной строке писать не цифры, а слова. для продажи - sale, для покупки - buy. По словам гораздо проще определять, чем по цифрам. |
|||
|
||||
| icewind |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: 20 Всего: 20 |
На мой взгляд плюсы и минусы искать при рассмотрении вариантов не стоит. solenko предложил единственно правильный вариант. Нужно просто взять и использовать. Почему он правильный? Можно почитать про принципы проектирования реляционных баз данных и все станет понятно
-------------------- ![]() |
|||
|
||||
| bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: 4 Всего: 6 |
Всем спасибо, впринципе все понятно и вопросов нет
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |