[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Оценка структуры БД
Страницы: 1, 2, 3, 4
Abrwalg
Второй вопрос пока тоже открыт....
Razzwan
Напиши постом, какая структура базы у тебя получилась? Мне файлики качать религия не позволяет.

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
Abrwalg
Точно такая же как в таблице в моём первом посте....
Первый столбец - тип региона (область, край....), после считывания он передаётся пользователю в выпадающий список (именно по этому вся таблица на кириллице). В зависимости от выбора типа региона переход в соответствующий столбец и передача пользователю списка названий регионов соответствующего типа....
Далее аналогично районы и города.....
Надеюсь понятно смог описать.....
AllesKlar
Цитата (Abrwalg @ 9.05.2016 - 14:20)
Точно такая же как в таблице в моём первом посте....
Первый столбец - тип региона (область, край....), после считывания он передаётся пользователю в выпадающий список (именно по этому вся таблица на кириллице). В зависимости от выбора типа региона переход в соответствующий столбец и передача пользователю списка названий регионов соответствующего типа....
Далее аналогично районы и города.....
Надеюсь понятно смог описать.....

Две таблицы, полтора столбца
objects
id;
name;
typ_id;
parent_id;

types
id;
name


_____________
[продано копирайтерам]
Abrwalg
Типов регионов (Автономная область, Автономный округ, Город, Край, Область, Республика) - 6 шт.
Регионов по названиям - 85 шт.
Районов - 561 шт.
Городов - 1166 шт.
Как это всё уложить в "Две таблицы, полтора столбца", чтобы сохранить иерархию и алфавитный порядок?
Что-то я видимо не до понимаю...
redreem
на примере Страна-Регион-Город:

country (id_country, name)
area (id_area, id_country, name)
city (id_city, id_area)
user (id_user, id_city, name)

пример выборки всех позиций для юзера:

select
u.id_user,
u.name user_name,
cn.id_country,
cn.name country_name,
a.id_area,
a.name area_name,
c.id_city,
c.name city_name
from user u
left join city c on c.id_city = u.id_city
left join area a on a.id_area = c.id_area
left join country cn on cn.id_country = a.id_country
sergeiss
Цитата (Abrwalg @ 9.05.2016 - 17:37)
чтобы сохранить ... алфавитный порядок?

Не важно, как у тебя хранятся данные. В запросе ты можешь указать ORDER BY и столбцы, по которым надо выстроить данные в порядке возрастания/убывания.
Учти, что порядок данных в таблице меняется при их редактировании, поэтому никогда нельзя полагаться на "родной" порядок данные, т.е. как они лежат в таблице.

Насчет иерархии и по другим вопросам уже всё разжевали, по-моему.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Abrwalg
Спасибо огромное! Буду разбираться.....
Abrwalg
Доброго всем времени!
Ещё раз спасибо за помощь и если не трудно, подскажите пожалуйста ещё…. Голова пухнет….
Значит так, решил я разобраться с таблицей изнутри… Создал простенькую на 8 столбцов и 3 строки, сделал экспорт в .sql, открыл его Вордом…. В целом всё понятно, увидел коим образом устроена запись…. Изменил Названия полей с использованием тире, пробела, слеша, изменил название таблицы, удалил одну строку, сохранил и сделал импорт в БД… И вуаля, всё вставилось как по маслу!
Ага, думаю, щас! В Microsoft Office Excel 2007 через формулы добавляю в ячейки все кавычки, пробелы и т.п . строго по образцу…. Перекопирую в блокнот (дабы вынуть из таблицы), из него перекопирую в Ворд и заменой удаляю все знаки табуляции, лишние пробелы ну и т.п. Собираю файл в соответствии с образцом:
-- phpMyAdmin SQL Dump
-- version 3.5.1
-- http://www.phpmyadmin.net
--
-- Хост: 127.0.0.1
-- Время создания: Май 09 2016 г., 13:40
-- Версия сервера: 5.5.25
-- Версия PHP: 5.3.13

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- База данных: `rb`
--

-- --------------------------------------------------------

--
-- Структура таблицы `cityrus`
--

CREATE TABLE IF NOT EXISTS `cityrus` (
`id` int(8) NOT NULL,
`Регион` varchar(255) NOT NULL,
`Автономная область` varchar(255) NOT NULL,
********
`Республика Чувашская - Чувашия Федеральный` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Регистрация пользователей';

--
-- Дамп данных таблицы `cityrus`
--

INSERT INTO `cityrus` (`id`, `Регион`, `Автономная область`, ***
*** `Республика Чувашская - Чувашия Федеральный`) VALUES
(1, 'Автономная область', 'Автономная область Еврейская', 'Алатырь'),
*****
(46, '', '', '', '', '', 'Область Ярославская', '', '', '', '', '', '', '', '', '', '', '', '', '', '');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


Дальше снова копирую в блокнот, сохраняю в UTF-8 и меняю расширение на .sql…. Делаю импорт в БД:
#1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
Перевёл в Промт:
1118. Слишком большой размер-Роу. Максимальный размер ряда для используемого типа стола, не считая КАПЛИ, 65535. Вы должны изменить некоторые колонки на ТЕКСТ или КАПЛИ
Так понял, ему не нравится тип полей? Пробовал делать все в text, всё также…. 
При этом таблица в БД появляется, вижу структуру, просмотра нет….
Открывал этот файл в MySQL Workbench, ошибок не показал….
Уже сутки долблюсь…. Подскажите пожалуйста, в чём может быть проблема?
redreem
зачем столько телодвижений?
если ручное редактирование дампа - notepad++ вполне достаточно.
ворд вообще противопоказан для работы с кодом.
Abrwalg
Ворд показывает не печатываемые символы, ну и "найти и заменить".... После него в .тхт дабы убрать всё форматирование.... Надеюсь, что таким образом код будет чистым....
redreem
notepad++ тоже все показывает, но при это не подмешивает свое форматирование, которое потом из ворда боком выходит.
Abrwalg
Понял, notepad прямо сейчас нет, пробую в ConTEXT
Abrwalg
Открыл свой файл в notepad, в конце каждой строки CR LF...
Открыл чужую базу для сравнения, там только LF....
Пробую делать перенос строки (интер)в своём файле, ставит CR LF, в чужом только LF.... Что за хрень и как её победить? Или это не важно?
redreem
думаю это не важно, но в notepad есть замена по регулярке и cr lf - это коды 13 10, или псевдосимволы \r\n
кодировки проверь твоего и чужого файла.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.