thắc mắc [Java] Thắc mắc về Java

Cho e hỏi như này thì String trong java
448556497_382118621022189_1748016572301557832_n.png

Tức java class String.
Thì nó giống như cách mà mấy ngon ngữ khác là các character trong một array đúng k nhỉ. Tại trước đó e dc học là string là những character trong một array kiểu v
string là chuỗi
String là 1 class trong java ,có 17 cái contructor(built-in function)
kiểu dữ liệu của nó là 1 loại riêng luôn,k hẳn là character .Về memory thì k hiểu bác bị stuck cái gì,như giờ hỏi String object nằm ở đâu rồi string được lưu như thế nào ,khi nào thì được khởi tạo ,runtime hay compile ,.... pvan hỏi memory hỏi rộng lắm bác ơi ,học bị stuck phần nào nó giải thích k hiểu thì bác hỏi
 
class bao gồm thông tin như môn, lớp, địa điểm thì hợp lý hơn chứ nhỉ, tutor với class là 1 to many
này là em lưu những thông tin riêng của gia sư ( gia sư dạy được những môn nào, của khối nào; rồi gia sư dạy được ở quận/huyện nào) như thông tin cá nhân chứ không phải thông tin của một lớp đang cần gia sư @@
 
Đầu tiên tạo các entities: tutors, classes, locations, subjects;
rồi tạo 1 junction table đặt tên là teaches chứa các cột tutor_id, class_id, loc_id, subject_id. Mỗi hàng thể hiện relationship là gia sư “teaches” môn gì ở đâu …
ý bác là như kiểu 4 bảng đó join với nhau ấy ạ, các dòng sẽ lưu trong bảng teaches
 
ý bác là như kiểu 4 bảng đó join với nhau ấy ạ, các dòng sẽ lưu trong bảng teaches
4 bảng sẽ liên kết với nhau thông qua bảng teaches. Bảng teaches đc gọi là association/junction table. KHÔNG phải là JOIN với nhau nhé.
 
Last edited:
4 bảng sẽ liên kết với nhau thông qua bảng teaches. Bảng teaches đc gọi là association table hay junction table hay là edge. KHÔNG phải là JOIN với nhau nhé.
em đang lưu những thông tin đó là thông tin cá nhân của gia sư, chứ kh phải là thông tin của một lớp dạy cần gia sư. Bác đang triển khai theo ý sau phải không ạ ?
 
Đăng lên mấy group hỏi mà bị flop quá, em lên đây cầu cứu các cao thủ ạ.
Để lưu những thông tin như trong ảnh cho thực thể Gia sư ( tất cả đều là quan hệ n-n) thì ngoài cách là tạo các thực thể Môn, Lớp, Địa điểm rồi lần lượt tạo các bảng trung gian với thực thể Gia sư thì còn cách lưu nào tối ưu hơn không ạ. Đồ án em dùng MySQL. Em cảm ơn các bác :love:
Các nội dung "Môn, lớp, địa điểm" là được lưu trong các bảng tương ứng rồi phải không bác?
Và bây giờ bác có 1 đối tượng là Gia sư, bác muốn trong thực thể Gia sư có thông tin các Môn, Lớp và Địa điểm dạy của Gia sư phải không nhỉ?
 
Đăng lên mấy group hỏi mà bị flop quá, em lên đây cầu cứu các cao thủ ạ.
Để lưu những thông tin như trong ảnh cho thực thể Gia sư ( tất cả đều là quan hệ n-n) thì ngoài cách là tạo các thực thể Môn, Lớp, Địa điểm rồi lần lượt tạo các bảng trung gian với thực thể Gia sư thì còn cách lưu nào tối ưu hơn không ạ. Đồ án em dùng MySQL. Em cảm ơn các bác :love:
này em làm chức năng đăng kí gia sư, gia sư có thể dạy được nhiều môn, nhiều lớp và nhiều địa điểm khác nhau, còn cái class bác đề cập đến là khác á
Sao phải khổ dâm thế hả fen xì, mấy cái kia gói lại trong một entity, rồi gia sư muốn dạy lớp nào thì pick entity đó thôi. Gia sư dạy vài lớn thì cũng thỏa mãn cái "nhiều môn, nhiều lớp và nhiều địa điểm khác nhau" fen mà. Cảm giác fen làm phần giao diện trước rồi mới thiết kế DB vậy.

Hay là fen đang kiểu gia sư đăng ký thông tin sau đó sẽ trả ra những lớp available mà gia sư có thể dạy?
 
em đang lưu những thông tin đó là thông tin cá nhân của gia sư, chứ kh phải là thông tin của một lớp dạy cần gia sư. Bác đang triển khai theo ý sau phải không ạ ?
Thông tin gia sư lưu vào bảng tutors rồi còn gì. Cái bảng teaches để lưu trữ mối quan hệ giữa gia sư và các bảng còng lại có FK là id của các bảng kia.
 
Cách thì có nhiều bác ạ. Theo đề bài của bác thì trọng tâm sẽ là Gia sư, 3 bảng khác gần như chỉ là các bảng Master data thôi. Vậy thì ta có một số ý tưởng đơn giản như sau. Bác có thể tùy biến cho bác dễ áp dụng:
Cách 1. Trong thực thể gia sư, tạo một cột "Danh sách Môn". Cột này sẽ lưu "tập hợp Id các môn học mà gia sư sẽ dạy, phân tách các id môn học bằng dấu ",". Dữ liệu cột này sẽ ánh xạ tới cột "id" ở bảng "Môn học". Khi nào cần dùng thì convert string to array hoặc ngược lại là có danh sách id môn học. Làm tương tự cho "Danh sách lớp" và "Danh sách địa điểm". Bác cũng có thể lưu luôn name thay vì id

Cách 2. Tạo một đối tượng và table để lưu lại mối quan hệ Gia sư - "Môn, lớp, địa điểm". Bảng sẽ có 4 cột gồm: Gia sư id - lưu thông tin id của gia sư, Môn ids - lưu thông tin danh sách id các môn mà gia sư dạy, lớp ids - tương tự Môn ids, địa điểm ids - tương tự Môn ids.

Làm theo kiểu này thì logic đọc và ghi dữ liệu hoàn toàn nằm trong program mà bác code, các ràng buộc FK sẽ được bỏ qua luôn, để show dữ liệu lên màn hình thì cũng chỉ cần mapping cái đống "ids" hoặc "Danh sách" với 3 cái bảng "Môn, lớp, địa điểm" là được.
 
Sao phải khổ dâm thế hả fen xì, mấy cái kia gói lại trong một entity, rồi gia sư muốn dạy lớp nào thì pick entity đó thôi. Gia sư dạy vài lớn thì cũng thỏa mãn cái "nhiều môn, nhiều lớp và nhiều địa điểm khác nhau" fen mà. Cảm giác fen làm phần giao diện trước rồi mới thiết kế DB vậy.

Hay là fen đang kiểu gia sư đăng ký thông tin sau đó sẽ trả ra những lớp available mà gia sư có thể dạy?
em đang làm theo ý cuối bác nói đó, chính nó
 
Cách thì có nhiều bác ạ. Theo đề bài của bác thì trọng tâm sẽ là Gia sư, 3 bảng khác gần như chỉ là các bảng Master data thôi. Vậy thì ta có một số ý tưởng đơn giản như sau. Bác có thể tùy biến cho bác dễ áp dụng:
Cách 1. Trong thực thể gia sư, tạo một cột "Danh sách Môn". Cột này sẽ lưu "tập hợp Id các môn học mà gia sư sẽ dạy, phân tách các id môn học bằng dấu ",". Dữ liệu cột này sẽ ánh xạ tới cột "id" ở bảng "Môn học". Khi nào cần dùng thì convert string to array hoặc ngược lại là có danh sách id môn học. Làm tương tự cho "Danh sách lớp" và "Danh sách địa điểm". Bác cũng có thể lưu luôn name thay vì id

Cách 2. Tạo một đối tượng và table để lưu lại mối quan hệ Gia sư - "Môn, lớp, địa điểm". Bảng sẽ có 4 cột gồm: Gia sư id - lưu thông tin id của gia sư, Môn ids - lưu thông tin danh sách id các môn mà gia sư dạy, lớp ids - tương tự Môn ids, địa điểm ids - tương tự Môn ids.

Làm theo kiểu này thì logic đọc và ghi dữ liệu hoàn toàn nằm trong program mà bác code, các ràng buộc FK sẽ được bỏ qua luôn, để show dữ liệu lên màn hình thì cũng chỉ cần mapping cái đống "ids" hoặc "Danh sách" với 3 cái bảng "Môn, lớp, địa điểm" là được.
cảm ơn những đề xuất của bác, iu iu :love:
 
Các phen cho mình hỏi phát, chuyện là mình đang viết swagger thì mình có dùng hidden = true trong @Schema để ẩn các dữ liệu không cần thiết khi gửi request lên server. Nhưng nó nảy sinh vấn đề là ở phần response nó sẽ bị thiếu thông tin đó đi do là request và response đều cùng sử dụng chung 1 DTO (khi chạy thì response trả về vẫn đủ thôi). Thì các phen cho mình hỏi cách tốt nhất cứ kệ nó hay là mình viết ra 2 class ví dụ CreateUserDto cho request và CreateUserResponse cho response để nó hiển thị đúng trên swagger nhỉ. Thanks các phen :love::love:
 
Các phen cho mình hỏi phát, chuyện là mình đang viết swagger thì mình có dùng hidden = true trong @Schema để ẩn các dữ liệu không cần thiết khi gửi request lên server. Nhưng nó nảy sinh vấn đề là ở phần response nó sẽ bị thiếu thông tin đó đi do là request và response đều cùng sử dụng chung 1 DTO (khi chạy thì response trả về vẫn đủ thôi). Thì các phen cho mình hỏi cách tốt nhất cứ kệ nó hay là mình viết ra 2 class ví dụ CreateUserDto cho request và CreateUserResponse cho response để nó hiển thị đúng trên swagger nhỉ. Thanks các phen :love::love:
2 class riêng luôn
 
Các phen cho mình hỏi phát, chuyện là mình đang viết swagger thì mình có dùng hidden = true trong @Schema để ẩn các dữ liệu không cần thiết khi gửi request lên server. Nhưng nó nảy sinh vấn đề là ở phần response nó sẽ bị thiếu thông tin đó đi do là request và response đều cùng sử dụng chung 1 DTO (khi chạy thì response trả về vẫn đủ thôi). Thì các phen cho mình hỏi cách tốt nhất cứ kệ nó hay là mình viết ra 2 class ví dụ CreateUserDto cho request và CreateUserResponse cho response để nó hiển thị đúng trên swagger nhỉ. Thanks các phen :love::love:
3 class nhé, 1 abstract class làm base, còn request và response sẽ extend cái abstract class với additional information. DRY principles
 
giờ dev mới ra trường có nên cắm đầu theo Java không
Tùy công việc bạn làm là gì chứ, hồi ra trg ngày xưa tôi PV java, lúc làm lại code .net, về sau code cả NodeJS. Ko ngại thì thấy dễ thôi

// Tuy ko nhớ NodeJS mấy, nhưng project tôi làm khó phết, và là bài tủ đi PV mấy năm nay
 
Back
Top