Kiểm tra ngày sinh trùng lặp của người dùng

Hiện tại em đang có 1 form để người dùng nhập thông tin như thế này thì em muốn người dùng không được trùng tên và trùng ngày sinh(có thể trùng tên nhưng ngày sinh phải khác nhau) thì phải làm như thế nào ạ? Và sau khi em nhập dữ liệu bảng thì id vẫn tăng nhưng quay sang form điền thì nó set về 0 thì có cách nào để nó hiển thị đúng k ạ?
Em đang dùng java spring boot, dưới đây là code html form của e.
Em xin cảm ơn.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet"
	href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
	integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
	crossorigin="anonymous">
</head>
<body>
    <div class="container">
		<div class="row">
			<h1>Employee</h1>
		</div>
    <form name="myForm"  
    th:object="${order}" th:action="@{save/{id}(id=${order.ids})}" 
    th:method="${id} < 0 ? post:put">
    
        ID: <input type="number" name="ids" th:value="${order.ids}" ><br/>
        NAME: <input type="text" name="name" th:value="${order.name}" required><br/>
        DOB: <input type="date" name="date" th:value="${order.date}" required><br/>
        DEPARTMENT: <input type="text" name="department" th:value="${order.department}" required><br/>
        HIRED: <input type="checkbox" name="hired" th:checked="${order.hired}"><br/>
		<button type="submit" class="btn btn-success">Save</button>
    </form>
</body>
</html>

image

  1. Trong thực tế thì vẫn có thể trùng tên và trùng ngày sinh. Bạn kiểm tra như vậy làm gì?

  2. Vì bạn để id trong CSDL là tự tăng nên phần nhập không cần nhập id và chính xác là chả cần hiện cái id đó làm gì khi nhập.
    Tất nhiên là ý bạn đang muốn nó hiện id sẽ gán cho người dùng mới đó khi đang thêm thông tin; thật sự thì chả cần đâu bạn.

    Vì sao không cần? Vì nó không chính xác được.
    Vì sao nó không chính xác? Vì có thể cùng 1 lúc mở nhiều thẻ (tab) thêm mới với cùng 1 id, nhưng sau khi thêm thì id sẽ không phải là id đã hiển thị.
    Bạn cứ thử xem các trang web cho phép đăng kí người dùng có id, có bao giờ nó hiện "id của bạn sẽ là" hay không? FB, YT,…
    Vẫn có một số trang web sẽ tạo và hiện id ngay khi bạn đang nhập thông tin đăng kí, nhưng họ thiết kế CSDL và cách gán id theo cách khác chứ không dùng cách tự tăng đâu.

4 Likes

Em hiện đang làm bài tập có yêu cầu tên và ngày sinh không được trùng với người đã có trong CSDL nên em chưa biết làm sao để làm

Select top 1 từ CSDL ra. Nếu empty thì là không trùng.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?