2009-11-13 235 views
1

怎樣的用戶使用以下屬性提供該用戶沒有任何標識數據庫設計問題

  • 名稱
  • 父親的名字
  • 母親的名字
  • 出生
  • 的找到日期
  • 性別

    請記住,用戶可能會出錯,而輸入 :(

請分享您的想法....

+2

爲什麼這是一個設計問題?應該允許什麼樣的錯誤? – 2009-11-13 10:04:05

+0

除非您100%確信您的搜索參數之一在您的數據集中是唯一的,否則您無法使其可靠。 – Galwegian 2009-11-13 10:10:36

+0

我認爲我們不瞭解您的問題。請進一步解釋需求,也許就用戶行爲而言。例如:「約翰史密斯插入了一條記錄,但將他的名字錯誤地命名爲'Jhon Smith',另一個叫做'約翰史密斯'的用戶已經有了一條記錄,怎麼能錯誤地輸入約翰史密斯來修復他的錯誤? – djna 2009-11-13 12:31:24

回答

1

用戶在輸入時出錯,但輸入自己的名字時不會出錯。

嘗試搜索你的男人是這樣的:

SELECT * FROM <your_table_name_here> WHERE name LIKE <name you are looking for> 

這將返回所有行使用該名稱,如果你想更多的主題篩選上,你可以添加

AND dateOfBirth LIKE <the day of birth> 

到最後您的查詢

1

不做這樣。如果你只想以這種方式去使用,請在你的sql查詢中使用,比如語法。我認爲如果您能提供更多關於問題的信息,將會對所有人更有幫助。

1

你是從哪個數據庫開始工作的?如果涉及到ORM,那麼你可以簡單地編寫一個函數來搜索可能的情況。

1

這與用戶界面設計的數據庫設計一樣多。但首先,你必須在數據庫中有一些獨特的東西,要麼是字段的組合,要麼是唯一的ID。在你的情況下,我可以看到兩種選擇。要求用戶名是唯一的。如果你有兩個約翰史密斯,那麼他們中的一個必須採用一個獨特者 - 約翰(約翰)史密斯。或者你有一個ID列。你永遠不需要向用戶顯示id列,但你可能會發現它對你的實現很有用

現在對於用戶界面:你有一個數據庫中的記錄負載,用戶想要一個記錄但只有部分知道匹配的數據。您需要處理一些不確定因素並與用戶進行交互。

What do you know? 

His name is Davdi and his father's name is Gordon 

(search) We don't have anyone called Davdi 

Oh I meant His name is David and his father's name is Gordon 

OK, we've got 10 records that match that, which one do you want? 

This one (user picks from list - behind the scenes we know the unique id) 

現在,根據您使用的數據庫,您可以走得更遠。例如,用戶可以使用通配符或正則表達式來指定它們的含義。

His name is Dav* (can't remember if it's Dave or David) 

但是您正在使用的查詢語言將需要支持這樣的事情。一些數據庫具有「聽起來像」的能力。所以「劉易斯」會匹配「路易斯」和「劉易斯」,甚至「婁」。如果你真的想要有幫助,那麼你可能需要這種能力。