Я создаю веб-сайт Family Tree + History [PHP], чтобы сопровождать и демонстрировать генеалогический отчет моей мамы, который она составила для рождественского подарка своим родителям. По крайней мере, дерево будет основано на базе данных MySQL («семья»), в которой я сейчас работаю с двумя таблицами: «люди» и «браки». У меня также есть третья таблица «отцовство», но с тех пор я считаю ее ненужной.
Структуры таблиц следующие:
PERSONS
- 'personID' [tinyint, pk]
- 'firstName'
- 'lastName'
- 'sex' [set{'M','F'}]
- 'birthDate'
- 'fatherID' [internal rel = 'personID']
- 'motherID' [internal rel = 'personID']
- 'birthPlace'
- 'deathDate'
- 'deathPlace'
- 'birthRecord' (filename)
MARRIAGES
- 'husbandID' [internal rel = 'persons.personID']
- 'wifeID' [internal rel = 'persons.personID']
- 'date'
- 'place'
- 'record'
Индекс PK в таблице «браки» состоит из обоих столбцов идентификатора. (*Пожалуйста, извините меня за использование сексистских терминов; это просто для структурных целей - на всякий случай, поскольку я новичок в MySQL - и моя семья в любом случае довольно правая и консервативная, но на самом деле это не так. "не имеет значения и не имеет никакого значения, и с таким же успехом может рассматриваться как супруга1 и супруга2, если хотите. Я лично совсем не гомофоб и не предубежден ни по отношению к кому-либо. Конец заявления об отказе от ответственности. Мир всем.)
Итак... вы понимаете, почему я хочу вести отдельную таблицу для «браков»: у каждого брака есть свои данные, которые необходимо включать, и было бы глупо повторять данные по каждому браку в записях для обоих супругов. Раньше у меня был столбец «идентификатор супруга» в таблице «лица», но затем мне нужно было вручную сопоставить идентификаторы каждого из супругов, и я не мог понять, как связать этот столбец с соответствующим столбцом брака (в « таблица браков) во всяком случае, поэтому я ее бросил.
Если бы кто-нибудь мог просветить меня о том, как я могу получить оба столбца идентификатора супруга в «браках», чтобы вместо этого отображались имена людей, или это было бы здорово.
Но в первую очередь мне нужно знать, как я могу связать две таблицы (возможно, включить столбец «супруга» в таблицу «лица», которая каким-то образом интегрирована с таблицей «браки»), а во-вторых, любые советы о том, как отображать иерархическое дерево.
Очень признателен.
P.S. Древо довольно обширное, охватывающее ~ 6 поколений. Есть около 45 «лиц», и я думаю, 16 браков, чего бы эта информация ни стоила...