第一第二個問題:
而且,每個人都會有特別依賴於本書在質詢中的作用。 「book_id」,「person_id」和「role_id」這個表的「book-person-role」有什麼問題嗎?
如果只有一個role_id連接到book_id和person_id,則可以使用一個表。連接表格速度慢,通常表格越少,工作速度越快(如果其他條件不變)。在這種特殊情況下,行數不會增加。所以有一張桌子是沒有問題的,你甚至有獎金:它運作得更快。
關於第一個問題。如果你有多對一的書籍關係,你應該爲書籍和人物使用不同的表格。無論你喜歡什麼,你都可以做用戶界面。你可以連接表格,提出幾個請求。你沒有說你正在使用什麼編程語言,所以我不能幫你編寫你想要的用戶界面的代碼。
編輯: 你建議讓person表(first_name和last_name作爲不同字段)的方式是一個好方法。當你想查找某個人時,你向服務器發出一個AJAX調用,服務器使用OR並返回該列表。例如,您想在#name_input輸入標籤中找到名稱。
HTML:
<input id="name_input" type='text' />
的JavaScript:
$(document).on('keydown','#name_input',function(){
var jqxhr = $.ajax("name_lookup.php?name="+$("#name_input").val())
.done(function(data, textStatus, jqXHR) {
alert("add data to your lookup list");
})
.fail(function() {
alert("error");
})
});
PHP:
$name = mysql_real_escape_string($_GET['name']);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
if ($result = $mysqli->query(
"SELECT id, first_name, last_name FROM persons WHERE first_name = $name OR last_name = $name ORDER BY last_name"
)) {
$rows = array();
while($row = $result->fetch_assoc()) {
$rows[] = $row;
}
echo json_encode($rows);
}else{
echo "Error";
}
Oy公司,我很抱歉。有時候我有點密集。 我在用mySQL編寫PHP。我知道有一個關於作者與書籍的數據透視表...我主要關心的是如何存儲作者數據,主要是名稱,允許通過姓氏按字母順序排序以及爲單個輸入字段用戶。 – mam