Commit graph

57 commits

Author SHA1 Message Date
Mike Colagrosso
312e2105ec Change Created datetime to timestamp to match 88c3049 2024-11-04 13:16:56 -06:00
Mike Colagrosso
c3c4cbddca Adopt IF NOT EXISTS approach from 82e43cb 2024-11-04 13:16:56 -06:00
Mike Colagrosso
95a1edc8b7 Bump TocEntries.SortOrder from tinyint to smallint
Ebooks can have more than 255 TocEntries. (572 is the current highest.)
2024-11-04 13:16:56 -06:00
Mike Colagrosso
c8e6524ef2 Remove primary key TocEntryId
Add a SortOrder column to order the TocEntries instead.
2024-11-04 13:16:56 -06:00
Mike Colagrosso
2eb7fef027 Remove primary key GitCommitId
The table already has a Created column, and that's the column we use to sort on.
2024-11-04 13:16:56 -06:00
Mike Colagrosso
3f3cf702b2 Remove primary key ContributorId
`Ebook` to `Contributor` is one to many, and we don't query by ContributorId.
The table already has a SortOrder column, and we use that to order the queries.
2024-11-04 13:16:56 -06:00
Mike Colagrosso
1076c9a77d Remove primary key EbookSourceId
There is a one to many relationship between `Ebook` and `EbookSource`, and we
don't query by `EbookSourceId`. We add a `SortOrder` column to keep the sources
in the same order as specified in `content.opf`.
2024-11-04 13:16:56 -06:00
Mike Colagrosso
4e8ba5ddaa Remove primary key EbookTagId
Add a SortOrder column so that tags are presented in the same order as listed in content.opf.
2024-11-04 13:16:56 -06:00
Mike Colagrosso
b4b6fde778 Remove primary key EbookLocSubjectId
Add a SortOrder column to keep the LocSubjects in the same order as given in content.opf.
2024-11-04 13:16:56 -06:00
Mike Colagrosso
cada95383f Remove primary key CollectionEbookId
Add a SortOrder to preserve the order of the collections listed in content.opf for ebook.php, e.g., for To the Lighthouse:

№ 15 in the Modern Library’s 100 Best Novels set.
Part of the Encyclopædia Britannica’s Great Books of the Western World set.
№ 2 in the BBC’s 100 Greatest British Novels (2015) set.
2024-11-04 13:16:56 -06:00
Mike Colagrosso
783a41a1ba Make Ebook Language NOT NULL 2024-11-04 13:16:56 -06:00
Mike Colagrosso
7d8cfd351e Ebook tags: Store UrlName so it can be queried 2024-11-04 13:16:56 -06:00
Mike Colagrosso
b792dec9e5 Make collection type (series, set) an enum 2024-11-04 13:16:56 -06:00
Mike Colagrosso
a9a0782946 Timestamps: Set DEFAULT and ON UPDATE values
Newer versions of MariaDB, such as this one included with Ubuntu 24.04:

    Server version: 10.11.8-MariaDB-0ubuntu0.24.04.1 Ubuntu 24.04

change the default behavior to not automatically set timestamp defaults and on update values:

    $ mysqld --verbose --help | grep explicit-defaults-for-timestamp
    explicit-defaults-for-timestamp                              TRUE

whereas my older machines allowed it:

    $ mysqld --verbose --help | grep explicit-defaults-for-timestamp
    explicit-defaults-for-timestamp                              FALSE

More background on the flag here:

    https://dev.mysql.com/doc/refman/8.4/en/timestamp-initialization.html
2024-11-04 13:16:56 -06:00
Mike Colagrosso
4abf6e29d2 Add an index for EbookCreated
This is the default sort on /ebooks, so it should have an index
2024-11-04 13:16:56 -06:00
Mike Colagrosso
402dae95ff Add a Type enum to Tags for artwork/ebook 2024-11-04 13:16:56 -06:00
Mike Colagrosso
a25660bc8b Split Collections into two tables 2024-11-04 13:16:56 -06:00
Mike Colagrosso
ac7db8d375 Add primary keys to LocSubjects and Tags tables
Missed these before, and in addition to being a good practice, they are needed to maintain insertion order of LocSubjects and Tags.
2024-11-04 13:16:56 -06:00
Mike Colagrosso
79daa82bf4 Add primary keys to multiple tables
I missed these keys when creating the initial schema, and it's a useful practice.
2024-11-04 13:16:56 -06:00
Mike Colagrosso
7350891cd5 Spell out EbookSourceType values 2024-11-04 13:16:56 -06:00
Mike Colagrosso
88b3ffd9ed Store EbookSourceType as a string/enum, not int 2024-11-04 13:16:56 -06:00
Mike Colagrosso
073f138c47 Initial Ebook DB schema 2024-11-04 13:16:56 -06:00
Alex Cabal
88c3049d7a Change some datetime columns to timestamp 2024-10-24 16:37:09 -05:00
Alex Cabal
82e43cb520 Add DB setup to readme 2024-10-23 11:09:16 -05:00
Alex Cabal
b6fbcaba26 Remove irrelevant user from SQL config 2024-10-22 22:47:56 -05:00
Alex Cabal
f28378de37 Update SQL table definitions 2024-05-24 11:50:04 -05:00
Alex Cabal
ee7c8343dd Convert some constants to enums 2024-05-11 21:51:06 -05:00
Alex Cabal
703e1a7a03 Continue improving type hints 2024-05-10 23:38:57 -05:00
Alex Cabal
c4c8e7353f Enable strict exception type hint checking in PHPStan and add exception type hints 2024-05-10 20:47:36 -05:00
Alex Cabal
113cc4a541 Add se-vcs-bot user to database permissions 2024-05-02 13:43:42 -05:00
Alex Cabal
5b3f8f7b77 Add support for filling backed enum types in the DB ORM layer, and cleanup some formatting issues 2024-04-25 11:57:02 -05:00
Alex Cabal
d7e3e648ef Fix MariaDB user config SQL 2024-03-16 12:20:06 -05:00
Alex Cabal
14d6719960 Update DB permissions for SE user 2024-03-07 11:04:05 -06:00
Alex Cabal
8519938e27 Fix SQL in Polls table 2024-02-06 15:53:52 -06:00
Alex Cabal
e267911305 Change column in Polls table 2024-02-04 21:51:35 -06:00
Mike Colagrosso
3ebe6fe457 Set artist name length to 255
The length should be long enough to store COVER_ARTWORK_MAX_STRING_LENGTH
2024-01-26 10:17:36 -06:00
Alex Cabal
cbf87487eb Use ebook URL and not filesystem slug to identify ebooks in artworks 2024-01-23 23:11:30 -06:00
Mike Colagrosso
cad2f5f730 List artwork by artist via /artworks/<artist-name> 2024-01-23 13:46:12 -06:00
Alex Cabal
f0bdd5596f Rename ArtistAlternateSpellings to ArtistAlternateNames 2024-01-17 16:32:57 -06:00
Alex Cabal
51672e7177 Add support for alternate spellings in new artwork form 2024-01-15 11:42:47 -06:00
Alex Cabal
f992da84ae Don't allow submitters to review their own artwork 2024-01-13 16:38:22 -06:00
Alex Cabal
60eb118524 Add Special Notes field to artwork 2024-01-10 13:41:15 -06:00
Mike Colagrosso
854fb2c816 Add SubmitterUserId field to Artworks table 2024-01-09 23:20:08 -06:00
Mike Colagrosso
86af259f0b Change CanUploadArtwork field name to match code 2024-01-09 10:17:14 -06:00
Alex Cabal
5a1c05d8c5 Add password login option for some users, and further refinements to artwork management system 2024-01-06 22:27:38 -06:00
Mike Colagrosso
6a5c05511a Add cover art database
Co-authored-by: Job Curtis <job.curtis@gmail.com>
Co-authored-by: Alex Cabal <alex@standardebooks.org>
2024-01-03 19:14:04 -06:00
Mike Colagrosso
1f3b66144d Add IsMatchingDonation to Payments 2023-06-18 10:06:09 -05:00
Alex Cabal
30442c0c62 Move HTTP auth to PHP 2022-07-14 12:50:21 -05:00
Alex Cabal
0bc3dc3830 Create cookie-based login and authentication system 2022-07-10 20:53:20 -05:00
Alex Cabal
7f50f00b42 work 2022-07-10 00:55:24 -05:00