Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 28.05.2015, 13:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от dimke931
а что нужно предоставить?)
Ну вообще-то дамп таблицы данных, чтобы видеть структуру и связи. Но эта тема (да и вообще весть пост данный) к JS отношения не имеет, ну только, если на уровне "щелкнуть и показать", не более.
Ответить с цитированием
  #32 (permalink)  
Старый 28.05.2015, 13:10
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от dimke931
сами связи дополнительно хранятся отдельно
Почему отдельно?
Ответить с цитированием
  #33 (permalink)  
Старый 28.05.2015, 13:29
Интересующийся
Отправить личное сообщение для dimke931 Посмотреть профиль Найти все сообщения от dimke931
 
Регистрация: 27.05.2015
Сообщений: 25

Сообщение от laimas Посмотреть сообщение
Почему отдельно?
Вот честно, я не знаю... Это не моя структура данных... как я изначально и писал это французская разработка, но ее забросили в 2014 году и я решил ее дописать, как то поиграться с ней, но было куча вопросов, которые приходится разбирать, получалось вроде самому до сего момента а про то что отдельно, я читал статью о хранении сложных структур данных в реляционных бд и там советовали отдельно хранить связи (метод М-арного дерева)
Ответить с цитированием
  #34 (permalink)  
Старый 28.05.2015, 13:37
Интересующийся
Отправить личное сообщение для dimke931 Посмотреть профиль Найти все сообщения от dimke931
 
Регистрация: 27.05.2015
Сообщений: 25

CREATE TABLE `got_kievsky_even_sour` (
  `id_indi` mediumint(9) NOT NULL DEFAULT '0',
  `id_husb` mediumint(9) NOT NULL DEFAULT '0',
  `id_wife` mediumint(9) NOT NULL DEFAULT '0',
  `type_evene` varchar(4) NOT NULL,
  `date_evene` varchar(32) DEFAULT NULL,
  `lieu_evene` varchar(42) DEFAULT NULL,
  `dept_evene` varchar(42) DEFAULT NULL,
  `id_sour` mediumint(9) NOT NULL DEFAULT '0',
  `type_sourc` varchar(4) NOT NULL,
  `attr_sourc` varchar(255) DEFAULT NULL,
  KEY `FK1_INDI` (`id_indi`,`type_evene`),
  KEY `FK2_HUSB` (`id_husb`,`type_evene`),
  KEY `FK3_WIFE` (`id_wife`,`type_evene`),
  KEY `FK4_SOUR` (`id_sour`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8	;
#	TC`got_kievsky_evenement`utf8_general_ci	;
CREATE TABLE `got_kievsky_evenement` (
  `id_indi` mediumint(9) NOT NULL DEFAULT '0',
  `id_husb` mediumint(9) NOT NULL DEFAULT '0',
  `id_wife` mediumint(9) NOT NULL DEFAULT '0',
  `type_evene` varchar(4) NOT NULL,
  `date_evene` varchar(32) DEFAULT NULL,
  `lieu_evene` varchar(42) DEFAULT NULL,
  `dept_evene` varchar(42) DEFAULT NULL,
  `note_evene` mediumtext,
  `anne_evene` smallint(6) DEFAULT NULL,
  KEY `FK1_INDI` (`id_indi`),
  KEY `FK2_HUSB` (`id_husb`),
  KEY `FK3_WIFE` (`id_wife`),
  KEY `FK4_LIEU` (`lieu_evene`),
  KEY `FK5_TYPE` (`type_evene`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8	;
#	TC`got_kievsky_individu`utf8_general_ci	;
CREATE TABLE `got_kievsky_individu` (
  `id_indi` int(9) NOT NULL DEFAULT '0',
  `nom` varchar(32) DEFAULT NULL,
  `prenom1` varchar(32) DEFAULT NULL,
  `prenom2` varchar(32) DEFAULT NULL,
  `prenom3` varchar(32) DEFAULT NULL,
  `sexe` tinytext,
  `profession` varchar(42) DEFAULT NULL,
  `date_naiss` varchar(32) DEFAULT NULL,
  `lieu_naiss` varchar(42) DEFAULT NULL,
  `dept_naiss` varchar(42) DEFAULT NULL,
  `date_deces` varchar(32) DEFAULT NULL,
  `lieu_deces` varchar(42) DEFAULT NULL,
  `dept_deces` varchar(42) DEFAULT NULL,
  `note_indi` text,
  `id_pere` mediumint(9) DEFAULT NULL,
  `id_mere` mediumint(9) DEFAULT NULL,
  `tri` smallint(6) DEFAULT NULL,
  `sosa_dyn` bigint(20) DEFAULT NULL,
  `anne_deces` smallint(6) DEFAULT NULL,
  PRIMARY KEY (`id_indi`),
  KEY `FK1_NOM` (`nom`),
  KEY `FK2_PREN` (`prenom1`),
  KEY `FK3_PERE` (`id_pere`),
  KEY `FK4_MERE` (`id_mere`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8	;
#	TC`got_kievsky_relation`utf8_general_ci	;
CREATE TABLE `got_kievsky_relation` (
  `id_parent` mediumint(9) NOT NULL DEFAULT '0',
  `id_enfant` mediumint(9) NOT NULL DEFAULT '0',
  `type_parent` char(1) DEFAULT NULL,
  PRIMARY KEY (`id_parent`,`id_enfant`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8	;
#	TC`got_kievsky_source`utf8_general_ci	;
CREATE TABLE `got_kievsky_source` (
  `id_sour` mediumint(9) NOT NULL DEFAULT '0',
  `note_source` mediumtext,
  PRIMARY KEY (`id_sour`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8	;


вот я сделал дамп таблиц
Ответить с цитированием
  #35 (permalink)  
Старый 28.05.2015, 13:40
Интересующийся
Отправить личное сообщение для dimke931 Посмотреть профиль Найти все сообщения от dimke931
 
Регистрация: 27.05.2015
Сообщений: 25

Я только не как не могу понять, почему мне не выдает связей... ведь они должны быть...
Ответить с цитированием
  #36 (permalink)  
Старый 28.05.2015, 13:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Код:
CREATE TABLE `got_kievsky_relation` (
  `id_parent` mediumint(9) NOT NULL DEFAULT '0',
  `id_enfant` mediumint(9) NOT NULL DEFAULT '0',
  `type_parent` char(1) DEFAULT NULL,
  PRIMARY KEY (`id_parent`,`id_enfant`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Это и есть таблица связывающая потомков с предками? А какова максимальная глубина вложения, или она не ограничивается?
Ответить с цитированием
  #37 (permalink)  
Старый 28.05.2015, 13:46
Интересующийся
Отправить личное сообщение для dimke931 Посмотреть профиль Найти все сообщения от dimke931
 
Регистрация: 27.05.2015
Сообщений: 25

Сообщение от laimas Посмотреть сообщение
Код:
CREATE TABLE `got_kievsky_relation` (
  `id_parent` mediumint(9) NOT NULL DEFAULT '0',
  `id_enfant` mediumint(9) NOT NULL DEFAULT '0',
  `type_parent` char(1) DEFAULT NULL,
  PRIMARY KEY (`id_parent`,`id_enfant`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Это и есть таблица связывающая потомков с предками? А какова максимальная глубина вложения, или она не ограничивается?
не ограниивается
Ответить с цитированием
  #38 (permalink)  
Старый 28.05.2015, 13:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от dimke931
Я только не как не могу понять, почему мне не выдает связей... ведь они должны быть...
А где в этом запросе вообще есть упоминание о каких либо связях?:

"select id_indi as id, nom as name, prenom1 as surname, ifnull(id_pere,0) as id_fat, ifnull(id_mere,0) as id_mot from got_".$_REQUEST['ibase']."_individu "
Ответить с цитированием
  #39 (permalink)  
Старый 28.05.2015, 13:49
Интересующийся
Отправить личное сообщение для dimke931 Посмотреть профиль Найти все сообщения от dimke931
 
Регистрация: 27.05.2015
Сообщений: 25

Сообщение от laimas Посмотреть сообщение
А где в этом запросе вообще есть упоминание о каких либо связях?:

"select id_indi as id, nom as name, prenom1 as surname, ifnull(id_pere,0) as id_fat, ifnull(id_mere,0) as id_mot from got_".$_REQUEST['ibase']."_individu "
хм... нигде... просто я когда изучал sql в университете мы делали в erwin концептуальную модель и генерировали скрипт, который содержал в себе связи... а тут мне не дали связи вот я и растерялся
Ответить с цитированием
  #40 (permalink)  
Старый 28.05.2015, 14:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

мы делали в erwin концептуальную модель - а не шаляй валяй. ) Ну а запрос ваш, это же просто запрос к одной таблице для получения указанных полей и все, без всякой концепции, то бишь углубленной задачи.

Совет, хотя можете его и не воспринимать - не пишите в запросах имена полей и названия функций в одном регистре, плохо читается такой запрос. Лучше так:
$sql = 'SELECT id_indi AS id, nom name, prenom1 surname, ifnull(id_pere,0) id_fat, ifnull(id_mere,0) id_mot FROM got_'.$_REQUEST['ibase'].'_individu';

AS указан только раз, ибо уж не помню с какой версии его можно опускать.

А вот это - got_' . $_REQUEST['ibase'] . '_individu - не допустимо.

Нет времени сейчас, а выбор из таблицы дерева, это извечный вопрос, и о нем уже столько переписано. Есть такой подход: NESTED SETS есть и иные. Могу добавить, по секрету, что можно вообще сформировать строку запроса, выполнить один запрос и получить дерево, и тоже без рекурсий. Только одно условие для этого нужно - ограничение максимального вложения какой либо величиной.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 22:26
Помощь в реализации шифра вертикальной перестановки Dinobot Общие вопросы Javascript 1 01.12.2012 18:20
Проблемы с jqGrid и JSON massacra_panda Библиотеки/Тулкиты/Фреймворки 1 08.10.2012 16:44
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10