Я пытаюсь создать простую программу регистрации, используя VB.Net и MySQL для своей базы данных. Вот моя простая таблица для основной информации
Тем не менее, я пытаюсь улучшить свои базовые знания в области нормализации таблицы, и поэтому я разделил поле «Дата», чтобы избежать, скажем, в один день повторной вставки одной и той же даты. Я имею в виду, когда 50 человек зарегистрировались за один день, он просто добавит одну дату (запись) в таблицу tblRegDate вместо добавления ее 50 раз в таблицу. Есть какой-либо способ сделать это? Возможно ли это в VB.Net и MySQL? Или, скорее, я должен добавить или изменить какое-то поле? или я должен сделать условие в VB.Net? Приведенная выше таблица — это то, чему меня научил мой друг, но я обнаружил, что она не устраняет избыточность. Пожалуйста, дайте мне какие-либо инструкции или направьте меня на сайт, где есть простой учебник для этого. Заранее спасибо!
вот мои коды MySQL:
CREATE TABLE tblInfo(
Number INT AUTO_INCREMENT,
LastName VARCHAR(45),
FirstName VARCHAR(45),
MiddleName VARCHAR(45),
Gender ENUM(M,F),
BirthDate DATE,
PRIMARY KEY(Number));
CREATE TABLE tblRegDate(
IDRegDate INT AUTO_INCREMENT,
Date TIMESTAMP,
Number INT,
PRIMARY KEY(IDRegDate),
FOREIGN KEY(Number) REFERENCES tblInfo(Number));
RegDate
в информационной таблице. - person AndrewR   schedule 21.10.2011tblInfo
, будет примерно того же размера, что и хранилище для значения внешнего ключа, поэтому экономия места минимальна; стоимость присоединения к таблицеtblRegDate
перевешивает любую экономию. Техника не обязательно автоматически плоха; это просто не убедительный пример использования техники. - person Jonathan Leffler   schedule 21.10.2011