1

Я немного смущен тем, что создал хорошую реляционную базу данных. Я использую phpmyAdmin для создания базы данных. У меня следующие четыре таблицы. Не беспокойтесь о том, что место и цена не являются обязательными.Связи базы данных с использованием phpmyAdmin (составные ключи)

  1. лицо (обязательно)
  2. Предмет (обязательно)
  3. место (необязательно)
  4. Цена (необязательно)

Деталь основной таблицы. Он всегда будет связан с человеком. * Я знаю, что вы соединяетесь в mysql для таблиц. Если я хочу связать таблицы вместе, я мог бы использовать составные клавиши (используя идентификаторы из каждой таблицы), однако является ли это наиболее правильным способом связывания таблиц? Это также означает, что у элемента будет 5 идентификаторов, включая его собственные. Все это приводит к нулевым значениям (видимо, большой нет нет, что я могу понять), потому что если место и цена являются необязательными и не используются в одной записи в таблице элементов, у меня будет нулевое значение. Пожалуйста помоги!

Заранее спасибо. Я надеюсь в этом есть смысл.

ответ

2

NULL значение

Это также означает, что элемент будет иметь 5 идентификаторов, включая свой собственный. Все это приводит к нулевым значениям (видимо, большой нет нет, что я могу понять), потому что, если место и цена являются необязательными и не используются в одной записи в таблице элементов, у меня будет нулевое значение.

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

Один из способов, которым я видел, что другие достигают того же, без значений NULL, - это создание записи в необязательных таблицах (место и цена в вашем примере) с идентификатором 0, означающим, что нет соответствующей записи - но это просто делает в 10 раз больше работы разработчику приложения, чтобы отфильтровать эти записи - FAR проще сделать соединение, и если вы не получите никаких записей, в факультативной таблице нет связанных записей.

Только не забудьте сделать LEFT или RIGHT OUTER присоединиться, если вы хотите вернуть Item S независимо от того, имеют ли они Place или Price связаны (вы получите NULL значения в дополнительных столбцах таблицы для Item с, которые не имеют связанные записи) и INNER присоединяйтесь, если вы только хотите Item с, что do имеют связанную дополнительную запись.

Композитные ключи

Составной ключ является в таблице которая сделана из более чем одного столбца. Если каждый из ваших , Item, Place и Price имеют идентификатор (даже если это просто число с автоматическим добавлением), вам не понадобится составной ключ - только столбец первичного ключа в каждой таблице и столбец внешнего ключа в таблица Item для каждой связанной таблицы - например item_id, person_id, place_id, price_id.Вы заявляете, что Item имеет свой собственный идентификатор, поэтому вам не нужен составной ключ - только первичный ключ в столбце item_id.

+0

Как вы убедитесь, что правильные идентификаторы заполнены на INSERT? Например, когда я вставляю, я не получаю правильный идентификатор для других таблиц, мне нужно сделать это с помощью операторов mysql? –

 Смежные вопросы

  • Нет связанных вопросов^_^