ฉันกำลังตั้งค่าฐานข้อมูลโดยใช้ phpMyAdmin ฉันมีสองตาราง ( foo
และbar
) การจัดทำดัชนีในคีย์หลักของพวกเขา ฉันพยายามสร้างตารางสัมพันธ์ ( foo_bar
) ระหว่างพวกเขาโดยใช้คีย์หลักเป็นคีย์ต่างประเทศ
ฉันสร้างตารางเหล่านี้เป็น MyISAM แต่หลังจากนั้นทั้งสามเปลี่ยนเป็น InnoDB เนื่องจากฉันอ่านว่า MyISAM ไม่สนับสนุนคีย์ต่างประเทศ ทุกเขตข้อมูลid
INT(11)
เมื่อฉันเลือกfoo_bar
ตารางให้คลิกลิงก์ "มุมมองที่เกี่ยวข้อง" และพยายามตั้งค่าคอลัมน์ FK ให้เป็นdatabase.foo.id
และจะมีdatabase.bar.id
ข้อความระบุว่า"ไม่ได้กำหนดดัชนี!" ข้างแต่ละคอลัมน์
ฉันพลาดอะไรไป
ชี้แจง / อัปเดต
เพื่อความเรียบง่ายฉันต้องการใช้ phpMyAdmin ต่อไป ฉันกำลังใช้ XAMPP ซึ่งเป็นเรื่องง่ายพอที่จะให้ฉันจดจ่อกับ PHP / CSS / Javascript และมันมาพร้อมกับ phpMyAdmin
นอกจากนี้แม้ว่าฉันจะไม่สามารถตั้งค่าคีย์ต่างประเทศที่ชัดเจนได้ แต่ฉันมีตารางสัมพันธ์และสามารถรวมเข้าด้วยกันเช่นนี้:
SELECT *
FROM foo
INNER JOIN foo_bar
ON foo.id = foo_bar.foo_id
INNER JOIN bar
ON foo_bar.bar_id = bar.id;
มันทำให้ฉันรู้สึกไม่สบายใจที่จะไม่ได้กำหนด FK ไว้อย่างชัดเจนในฐานข้อมูล